Closed soininen closed 9 months ago
After updating an entity's name, its parameter values cannot be found anymore, see the code below which raises an AssertionError:
AssertionError
from spinedb_api import DatabaseMapping, to_database with DatabaseMapping("sqlite:///", create=True) as db_map: db_map.add_item("entity_class", name="fish") db_map.add_item("entity", class_name="fish", name="Nemo") db_map.add_item("parameter_definition", entity_class_name="fish", name="color") value, type_ = to_database("mainly orange") db_map.add_item( "parameter_value", entity_class_name="fish", entity_byname=("Nemo",), parameter_definition_name="color", alternative_name="Base", value=value, type=type_, ) fish = db_map.get_item("entity", class_name="fish", name="Nemo") fish.update(name="NotNemo") color = db_map.get_item("parameter_value", entity_class_name="fish", entity_byname=("NotNemo",), parameter_definition_name="color", alternative_name="Base") assert(color is not None)
Ah yeah, nice catch. We need to update the lookup dictionaries obviously (MappedTable.update_item)
After updating an entity's name, its parameter values cannot be found anymore, see the code below which raises an
AssertionError
: