borg-qt/tests/test_config.py

124 lines
4.5 KiB
Python
Raw Normal View History

2019-01-23 21:34:08 +01:00
import os
import sys
import configparser
2019-01-19 16:24:59 +01:00
import unittest
from unittest.mock import MagicMock, patch
2019-01-23 21:34:08 +01:00
import warnings
2019-01-19 16:24:59 +01:00
2019-01-23 21:34:08 +01:00
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from PyQt5.QtTest import QTest
2019-01-19 16:24:59 +01:00
import context
2019-01-23 21:34:08 +01:00
from main_window import MainWindow
2019-01-19 16:24:59 +01:00
from helper import BorgException
from testcase import BorgQtTestCase
2019-01-19 16:24:59 +01:00
2019-01-23 21:34:08 +01:00
app = QApplication(sys.argv)
class TestConfiguration(BorgQtTestCase):
2019-01-19 16:24:59 +01:00
def test_read_configuration(self):
2019-01-23 21:34:08 +01:00
self.form.config._get_path = MagicMock(return_value=self.config_path)
self.form.config.read()
2019-01-19 16:24:59 +01:00
parser = configparser.ConfigParser()
parser.read(self.config_path)
2019-01-23 21:34:08 +01:00
self.assertEqual(parser, self.form.config.config)
2019-01-19 16:24:59 +01:00
@patch('config.os.path')
def test_absent_config_file(self, mock_path):
mock_path.exists.return_value = False
with self.assertRaises(BorgException):
2019-01-23 21:34:08 +01:00
self.form.config._get_path()
2019-01-19 16:24:59 +01:00
def test_absent_port(self):
2019-01-23 21:34:08 +01:00
self.form.config._get_path = MagicMock(return_value=self.config_path)
self.form.config.read()
self.form.config.config['borgqt']['port'] = ""
2019-01-19 16:24:59 +01:00
with self.assertRaises(BorgException):
2019-01-23 21:34:08 +01:00
self.form.config._create_server_path()
2019-01-19 16:24:59 +01:00
2019-01-23 21:34:08 +01:00
def test_absent_user(self):
self.form.config._get_path = MagicMock(return_value=self.config_path)
self.form.config.read()
self.form.config.config['borgqt']['user'] = ""
2019-01-19 16:24:59 +01:00
with self.assertRaises(BorgException):
2019-01-23 21:34:08 +01:00
self.form.config._create_server_path()
2019-01-19 16:24:59 +01:00
def test_apply_settings(self):
2019-01-23 21:34:08 +01:00
self.form.config._get_path = MagicMock(return_value=self.config_path)
self.form.config.read()
self.form.config.apply_options()
self.assertIs(type(self.form.config.excludes), list)
self.assertEqual(self.form.config.full_path,
os.environ['BORG_REPO'])
self.assertEqual(self.form.config.password,
os.environ['BORG_PASSPHRASE'])
2019-01-19 16:24:59 +01:00
class TestWriteConfiguration(BorgQtTestCase):
2019-01-19 16:24:59 +01:00
def tearDown(self):
2019-01-23 21:34:08 +01:00
if os.path.exists(self.form.config.path):
os.remove(self.form.config.path)
2019-01-19 16:24:59 +01:00
def test_write_config(self):
2019-01-23 21:34:08 +01:00
self.form.config._get_path = MagicMock(return_value=self.config_path)
self.form.config.read()
self.form.config.path = '/tmp/test.conf'
self.form.config.write()
2019-01-19 16:24:59 +01:00
config = configparser.ConfigParser()
2019-01-23 21:34:08 +01:00
config.read(self.form.config.path)
self.assertEqual(self.form.config.config['borgqt']['password'],
2019-01-19 16:24:59 +01:00
config['borgqt']['password'])
2019-01-23 21:34:08 +01:00
class TestGuiConfiguration(BorgQtTestCase):
2019-01-23 21:34:08 +01:00
def setUp(self):
super().setUp()
self.form.config.read()
self.form.config.path = '/tmp/test.conf'
def tearDown(self):
if os.path.exists(self.form.config.path):
os.remove(self.form.config.path)
def test_set_form_values(self):
self.form.config.set_form_values()
self.assertEqual(self.form.config.password,
self.form.config.line_edit_password.text())
def test_cancel_settings(self):
self.form.config.line_edit_password.clear()
QTest.keyClicks(self.form.config.line_edit_password, "bar")
cancel_button = self.form.config.button_box.button(
self.form.config.button_box.Cancel)
QTest.mouseClick(cancel_button, Qt.LeftButton)
self.assertEqual(self.form.config.password,
self.form.config.config['borgqt']['password'])
def test_ok_settings(self):
self.form.config.line_edit_password.clear()
QTest.keyClicks(self.form.config.line_edit_password, "bar")
ok_button = self.form.config.button_box.button(
self.form.config.button_box.Ok)
QTest.mouseClick(ok_button, Qt.LeftButton)
parser = configparser.ConfigParser()
parser.read(self.form.config.path)
self.assertEqual(self.form.config.line_edit_password.text(),
parser['borgqt']['password'])
def test_include_remove(self):
self.form.config.set_form_values()
counter = self.form.config.list_include.count()
self.form.config.list_include.setCurrentRow(0)
self.form.config.remove_include()
self.assertGreaterEqual(counter, self.form.config.list_include.count())
def test_exclude_remove(self):
self.form.config.set_form_values()
counter = self.form.config.list_exclude.count()
self.form.config.list_exclude.setCurrentRow(0)
self.form.config.remove_exclude()
self.assertGreaterEqual(counter, self.form.config.list_exclude.count())