From 9cc57f0d42443f6961e6b480393b3e3063dccd97 Mon Sep 17 00:00:00 2001 From: Michael Bynum Date: Tue, 31 Mar 2020 04:19:15 -0600 Subject: [PATCH] updates to ImmutableConfigValue --- pyutilib/misc/config.py | 4 +++- pyutilib/misc/tests/test_config.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pyutilib/misc/config.py b/pyutilib/misc/config.py index 80babeb3..e7744ad2 100644 --- a/pyutilib/misc/config.py +++ b/pyutilib/misc/config.py @@ -1070,7 +1070,9 @@ def _data_collector(self, level, prefix, visibility=None, docMode=False): class ImmutableConfigValue(ConfigValue): def set_value(self, value): - raise RuntimeError(str(self) + ' is currently immutable') + if self._cast(value) != self._data: + raise RuntimeError(str(self) + ' is currently immutable') + super(ImmutableConfigValue, self).set_value(value) def reset(self): try: diff --git a/pyutilib/misc/tests/test_config.py b/pyutilib/misc/tests/test_config.py index 053d0925..5a9e8b34 100644 --- a/pyutilib/misc/tests/test_config.py +++ b/pyutilib/misc/tests/test_config.py @@ -54,6 +54,10 @@ def test_immutable_config_value(self): config.a = 4 with self.assertRaises(Exception): config.b = 5 + config.a = 2 + config.b = 3 + self.assertEqual(config.a, 2) + self.assertEqual(config.b, 3) locker.release_lock() config.a = 4 config.b = 5