[ILibrary / LazyLibrary] raise a LibraryError instead of KeyError
This commit is contained in:
parent
f0a4b08a31
commit
ce7bf5ce70
2 changed files with 13 additions and 0 deletions
|
|
@ -826,6 +826,8 @@ class ILibrary(ILibraryView, MutableMapping[str, 'Pattern'], metaclass=ABCMeta):
|
||||||
Returns:
|
Returns:
|
||||||
self
|
self
|
||||||
"""
|
"""
|
||||||
|
if old_name not in self:
|
||||||
|
raise LibraryError(f'"{old_name}" does not exist in the library.')
|
||||||
self[new_name] = self[old_name]
|
self[new_name] = self[old_name]
|
||||||
del self[old_name]
|
del self[old_name]
|
||||||
if move_references:
|
if move_references:
|
||||||
|
|
@ -1479,6 +1481,8 @@ class LazyLibrary(ILibrary):
|
||||||
Returns:
|
Returns:
|
||||||
self
|
self
|
||||||
"""
|
"""
|
||||||
|
if old_name not in self.mapping:
|
||||||
|
raise LibraryError(f'"{old_name}" does not exist in the library.')
|
||||||
self[new_name] = self.mapping[old_name] # copy over function
|
self[new_name] = self.mapping[old_name] # copy over function
|
||||||
if old_name in self.cache:
|
if old_name in self.cache:
|
||||||
self.cache[new_name] = self.cache[old_name]
|
self.cache[new_name] = self.cache[old_name]
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,15 @@ def test_library_rename() -> None:
|
||||||
assert "old" not in lib["parent"].refs
|
assert "old" not in lib["parent"].refs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("library_cls", (Library, LazyLibrary))
|
||||||
|
def test_library_rename_missing_raises_library_error(library_cls: type[Library] | type[LazyLibrary]) -> None:
|
||||||
|
lib = library_cls()
|
||||||
|
lib["top"] = Pattern()
|
||||||
|
|
||||||
|
with pytest.raises(LibraryError, match="does not exist"):
|
||||||
|
lib.rename("missing", "new")
|
||||||
def test_library_dfs_can_replace_existing_patterns() -> None:
|
def test_library_dfs_can_replace_existing_patterns() -> None:
|
||||||
lib = Library()
|
lib = Library()
|
||||||
child = Pattern()
|
child = Pattern()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue