forked from AG_QGIS/Plugin_SN_Basis
Anpassung an den Wrappern für sn_plan41
This commit is contained in:
60
tests/test_settings_logic.py
Normal file
60
tests/test_settings_logic.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# sn_basis/test/test_settings_logic.py
|
||||
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
from sn_basis.functions.settings_logic import SettingsLogic
|
||||
|
||||
|
||||
class TestSettingsLogic(unittest.TestCase):
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Test: load() liest alle Variablen über get_variable()
|
||||
# -----------------------------------------------------
|
||||
@patch("sn_basis.functions.settings_logic.get_variable")
|
||||
def test_load(self, mock_get):
|
||||
# Mock-Rückgabe für jede Variable
|
||||
mock_get.side_effect = lambda key, scope="project": f"wert_{key}"
|
||||
|
||||
logic = SettingsLogic()
|
||||
daten = logic.load()
|
||||
|
||||
# Alle Variablen müssen enthalten sein
|
||||
for key in SettingsLogic.VARIABLEN:
|
||||
self.assertIn(key, daten)
|
||||
self.assertEqual(daten[key], f"wert_{key}")
|
||||
|
||||
# get_variable muss für jede Variable genau einmal aufgerufen werden
|
||||
self.assertEqual(mock_get.call_count, len(SettingsLogic.VARIABLEN))
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Test: save() ruft set_variable() nur für bekannte Keys auf
|
||||
# -----------------------------------------------------
|
||||
@patch("sn_basis.functions.settings_logic.set_variable")
|
||||
def test_save(self, mock_set):
|
||||
logic = SettingsLogic()
|
||||
|
||||
# Eingabedaten enthalten gültige und ungültige Keys
|
||||
daten = {
|
||||
"amt": "A1",
|
||||
"behoerde": "B1",
|
||||
"unbekannt": "IGNORIEREN",
|
||||
"gemeinden": "G1",
|
||||
}
|
||||
|
||||
logic.save(daten)
|
||||
|
||||
# set_variable muss nur für gültige Keys aufgerufen werden
|
||||
expected_calls = 3 # amt, behoerde, gemeinden
|
||||
self.assertEqual(mock_set.call_count, expected_calls)
|
||||
|
||||
# Prüfen, ob die richtigen Keys gespeichert wurden
|
||||
saved_keys = [call.args[0] for call in mock_set.call_args_list]
|
||||
self.assertIn("amt", saved_keys)
|
||||
self.assertIn("behoerde", saved_keys)
|
||||
self.assertIn("gemeinden", saved_keys)
|
||||
self.assertNotIn("unbekannt", saved_keys)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user