Add support for specifying mutability when parsing a configuration

This commit is contained in:
2026-03-15 23:10:15 +01:00
parent 264f8a0083
commit e46a9784bb
7 changed files with 64 additions and 10 deletions
+26 -2
View File
@@ -15,6 +15,7 @@
from src.jcloud_config_parser.json import JSONConfiguration
from src.jcloud_config_parser.exceptions import JSONObjectSyntaxError, JSONValueSyntaxError, JSONStringSyntaxError, JSONArraySyntaxError, EscapeSequenceSyntaxError
from src.jcloud_config_parser import set_mutability
from src.jcloud_config_parser.parse.json import JSONString
def test_json_configuration():
# Test valid JSON configuration parsing
@@ -224,7 +225,7 @@ def test_json_configuration():
pass
def test_mutability():
config = JSONConfiguration(mutable=False)
config = JSONConfiguration(mutable = False)
try:
config.key = 'value'
assert False, 'Expected TypeError'
@@ -243,4 +244,27 @@ def test_mutability():
del config.key
assert False, 'Expected TypeError'
except TypeError:
pass
pass
configuration = '{"key": "value"}'
config = JSONConfiguration.from_string(configuration)
config.key1 = JSONString("value1")
set_mutability(config, False)
try:
config.key2 = JSONString('value2')
assert False, 'Expected TypeError'
except TypeError:
pass
config = JSONConfiguration.from_string(configuration, mutable = False)
try:
config.key1 = JSONString('value1')
assert False, 'Expected TypeError'
except TypeError:
pass
set_mutability(config, True)
config.key2 = JSONString('value2')