diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-01-22 06:53:54 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-01-22 06:53:54 +0100 |
commit | 6f5da2219555276e8641a4418746e6c513186ce9 (patch) | |
tree | 938c26b06c618d0ba7c8983c4abfb12476cd1d3e | |
parent | items: Improve identifier to item error message (diff) | |
download | rtems-central-6f5da2219555276e8641a4418746e6c513186ce9.tar.bz2 |
items: Improve identifier to value error message
-rw-r--r-- | rtemsspec/items.py | 9 | ||||
-rw-r--r-- | rtemsspec/tests/test_items_itemcache.py | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/rtemsspec/items.py b/rtemsspec/items.py index bcc7ed0a..666f6311 100644 --- a/rtemsspec/items.py +++ b/rtemsspec/items.py @@ -515,8 +515,13 @@ class ItemMapper: f"specified by '{identifier}' does not exist") raise ValueError(msg) from err key_path = normalize_key_path(key_path, prefix) - value = item.get_by_normalized_key_path(key_path, - self.get_value_map(item)) + try: + value = item.get_by_normalized_key_path(key_path, + self.get_value_map(item)) + except Exception as err: + msg = (f"cannot get value for '{key_path}' of {item.spec} " + f"specified by '{identifier}'") + raise ValueError(msg) from err for func in pipes: value = getattr(self, func)(value) return item, key_path, value diff --git a/rtemsspec/tests/test_items_itemcache.py b/rtemsspec/tests/test_items_itemcache.py index 483c8d43..2e6c64c7 100644 --- a/rtemsspec/tests/test_items_itemcache.py +++ b/rtemsspec/tests/test_items_itemcache.py @@ -164,6 +164,9 @@ def test_item_mapper(tmpdir): match = r"item 'boom' relative to spec:/p specified by 'boom:bam' does not exist" with pytest.raises(ValueError, match=match): mapper.map("boom:bam", item, "blub") + match = r"cannot get value for 'blub/bam' of spec:/p specified by '.:bam'" + with pytest.raises(ValueError, match=match): + mapper.map(".:bam", item, "blub") def test_empty_item_mapper(): |