diff options
author | Sebastian Koslowski <sebastian.koslowski@gmail.com> | 2018-09-22 14:33:10 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-02-17 11:18:05 -0800 |
commit | d33816fde01e696fb6084069ab4ea17b21426a86 (patch) | |
tree | 91519e66dacf2f650df5ebd57c82744591f0458c | |
parent | a29c4e4d06c1c658e6e09e83dea09b14a7dcc210 (diff) |
grc: fixes in evaluated properties
-rw-r--r-- | grc/core/utils/descriptors/evaluated.py | 3 | ||||
-rw-r--r-- | grc/tests/test_evaled_property.py | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/grc/core/utils/descriptors/evaluated.py b/grc/core/utils/descriptors/evaluated.py index 0e1b68761c..4f576820eb 100644 --- a/grc/core/utils/descriptors/evaluated.py +++ b/grc/core/utils/descriptors/evaluated.py @@ -66,8 +66,9 @@ class Evaluated(object): def __set__(self, instance, value): attribs = instance.__dict__ value = value or self.default - if isinstance(value, six.text_type) and value.startswith('${') and value.endswith('}'): + if isinstance(value, six.string_types) and value.startswith('${') and value.endswith('}'): attribs[self.name_raw] = value[2:-1].strip() + attribs.pop(self.name, None) # reset previous eval result else: attribs[self.name] = type(self.default)(value) diff --git a/grc/tests/test_evaled_property.py b/grc/tests/test_evaled_property.py index 27957cd291..468f16b8ea 100644 --- a/grc/tests/test_evaled_property.py +++ b/grc/tests/test_evaled_property.py @@ -56,6 +56,8 @@ def test_evaled(): assert a.foo == 11 and a.foo == 11 assert a.called['foo'] == 2 assert not a.errors + a.foo = u'${ 10 + 2 }' + assert a.foo == 12 def test_evaled_with_default(): |