Browse Source

Fix: Check field is allowed before updating

master
Ryan Reed 1 year ago
parent
commit
81ca92121d
2 changed files with 8 additions and 2 deletions
  1. +5
    -2
      src/transpose/transpose.py
  2. +3
    -0
      tests/test_transpose.py

+ 5
- 2
src/transpose/transpose.py View File

@ -111,7 +111,7 @@ class TransposeConfig:
def update(self, name: str, field_key: str, field_value: Any) -> None:
"""
Update an entry by name
Update an entry's field (attribute) value
Args:
name: The name of the entry (must exist)
@ -122,10 +122,13 @@ class TransposeConfig:
None
"""
try:
setattr(self.entries[name], field_key, field_value)
if not hasattr(self.entries[name], field_key):
raise TransposeError(f"Unknown TransposeEntry field: {field_key}")
except KeyError:
raise TransposeError(f"'{name}' does not exist in Transpose config entries")
setattr(self.entries[name], field_key, field_value)
@staticmethod
def load(config_path: str): # -> Self:
try:


+ 3
- 0
tests/test_transpose.py View File

@ -196,6 +196,9 @@ def test_config_update():
):
config.update("UnknownEntry", "path", "/some/new/path")
with pytest.raises(TransposeError, match="Unknown TransposeEntry field"):
config.update(ENTRY_NAME, "UnknownField", "Some Value")
config.update(ENTRY_NAME, "path", "/some/new/path")
assert config.entries[ENTRY_NAME].path == "/some/new/path"


Loading…
Cancel
Save