Source code for tests.test_settings

from dataclasses import fields
import unittest

from picometer.settings import DefaultSettings, Settings


[docs] class TestSettings(unittest.TestCase):
[docs] def setUp(self): self.settings = Settings()
[docs] def test_settings_pull_defaults(self) -> None: self.assertGreater(len(self.settings), 0) self.assertIn('clear_selection_after_use', self.settings)
[docs] def test_settings_change(self) -> None: known_setting = fields(DefaultSettings)[0] # noqa self.settings[known_setting.name] = known_setting.type(True) known_setting_value1 = self.settings[known_setting.name] self.settings[known_setting.name] = known_setting.type(False) known_setting_value2 = self.settings[known_setting.name] self.assertNotEqual(known_setting_value1, known_setting_value2)
[docs] def test_getting_unknown_raises(self) -> None: unknown_setting_name = 'undefined_setting_definitely_unused_!@#$%^&*()' with self.assertRaises(KeyError): _ = self.settings[unknown_setting_name]
[docs] def test_setting_unknown_raises(self) -> None: unknown_setting_name = 'undefined_setting_definitely_unused_!@#$%^&*()' with self.assertRaises(KeyError): self.settings[unknown_setting_name] = ''
[docs] def test_deleting_reverts_to_defaults(self) -> None: known_setting = fields(DefaultSettings)[0] # noqa default_value = self.settings[known_setting.name] new_value = v if (v := known_setting.type(True)) != default_value \ else known_setting.type(False) self.settings[known_setting.name] = new_value self.assertNotEqual(self.settings[known_setting.name], default_value) del self.settings[known_setting.name] self.assertEqual(self.settings[known_setting.name], default_value)