borg-qt/tests/test_config.py

124 lines
3.5 KiB
Python

import os
import sys
import configparser
import pytest
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from PyQt5.QtTest import QTest
from main_window import MainWindow
from helper import BorgException
app = QApplication(sys.argv)
def test_read_configuration(form):
parser = configparser.ConfigParser()
parser.read(form.config.path)
assert parser == form.config.config
def test_absent_config_file(monkeypatch):
def mock_path(path):
return False
form = MainWindow()
monkeypatch.setattr(os.path, 'exists', mock_path)
with pytest.raises(BorgException):
form.config._get_path()
def test_empty_port(form):
form.config.config['borgqt']['port'] = ""
with pytest.raises(BorgException):
form.config._create_server_path()
def test_absent_port(form):
if 'port' in form.config.config['DEFAULT']:
form.config.config['DEFAULT'].pop('port', None)
if 'port' in form.config.config['borgqt']:
form.config.config['borgqt'].pop('port', None)
with pytest.raises(BorgException):
form.config._create_server_path()
def test_empty_user(form):
form.config.config['borgqt']['user'] = ""
with pytest.raises(BorgException):
form.config._create_server_path()
def test_absent_user(form):
if 'user' in form.config.config['DEFAULT']:
form.config.config['DEFAULT'].pop('user', None)
if 'user' in form.config.config['borgqt']:
form.config.config['borgqt'].pop('user', None)
with pytest.raises(BorgException):
form.config._create_server_path()
def test_apply_settings(form):
form.config.apply_options()
assert type(form.config.excludes) == list
assert form.config.full_path == os.environ['BORG_REPO']
assert form.config.password == os.environ['BORG_PASSPHRASE']
def test_write_config(form):
form.config.config['borgqt']['password'] == 'Test String'
form.config.write()
config = configparser.ConfigParser()
config.read(form.config.path)
for value in config['borgqt']:
assert (form.config.config['borgqt'][value]
== config['borgqt'][value])
def test_set_form_values(form):
form.config.set_form_values()
assert (form.config.password
== form.config.line_edit_password.text())
def test_cancel_settings(form):
form.config.line_edit_password.clear()
QTest.keyClicks(form.config.line_edit_password, "bar")
cancel_button = form.config.button_box.button(
form.config.button_box.Cancel)
QTest.mouseClick(cancel_button, Qt.LeftButton)
assert (form.config.password
== form.config.config['borgqt']['password'])
def test_ok_settings(form):
form.config.line_edit_password.clear()
QTest.keyClicks(form.config.line_edit_password, "bar")
ok_button = form.config.button_box.button(
form.config.button_box.Ok)
QTest.mouseClick(ok_button, Qt.LeftButton)
parser = configparser.ConfigParser()
parser.read(form.config.path)
assert (form.config.line_edit_password.text()
== parser['borgqt']['password'])
def test_include_remove(form):
form.config.set_form_values()
counter = form.config.list_include.count()
form.config.list_include.setCurrentRow(0)
form.config.remove_include()
assert (counter >= form.config.list_include.count())
def test_exclude_remove(form):
form.config.set_form_values()
counter = form.config.list_exclude.count()
form.config.list_exclude.setCurrentRow(0)
form.config.remove_exclude()
assert (counter >= form.config.list_exclude.count())