49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
import sys
|
|
import unittest
|
|
|
|
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
|
SOURCE_ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(SOURCE_ROOT / "src"))
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
|
|
from PySide6.QtWidgets import QApplication, QLineEdit # noqa: E402
|
|
from matrix_image_editor.gui import MainWindow # noqa: E402
|
|
from test_config import sample_config # noqa: E402
|
|
|
|
|
|
class GuiTests(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls) -> None:
|
|
cls.app = QApplication.instance() or QApplication([])
|
|
|
|
def setUp(self) -> None:
|
|
self.window = MainWindow()
|
|
|
|
def tearDown(self) -> None:
|
|
self.window.close()
|
|
|
|
def test_passwords_are_hidden_and_dhcp_disables_static_fields(self) -> None:
|
|
self.assertEqual(self.window.account_password.echoMode(), QLineEdit.EchoMode.Password)
|
|
self.assertEqual(self.window.wifi_password.echoMode(), QLineEdit.EchoMode.Password)
|
|
for widget in (self.window.address, self.window.prefix, self.window.gateway, self.window.dns):
|
|
self.assertFalse(widget.isEnabled())
|
|
self.window.mode.setCurrentIndex(1)
|
|
for widget in (self.window.address, self.window.prefix, self.window.gateway, self.window.dns):
|
|
self.assertTrue(widget.isEnabled())
|
|
|
|
def test_loaded_values_collect_without_changing_image_version(self) -> None:
|
|
config = sample_config()
|
|
self.window._apply_loaded(Path("sample.img"), config)
|
|
self.window.username.setText("new_user")
|
|
collected = self.window._collect()
|
|
self.assertEqual(collected["software_version"], config["software_version"])
|
|
self.assertEqual(collected["account"]["username"], "new_user")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|