diff --git a/datagateway_api/common/database/models.py b/datagateway_api/common/database/models.py index fee2ed69..9aef5982 100644 --- a/datagateway_api/common/database/models.py +++ b/datagateway_api/common/database/models.py @@ -84,19 +84,9 @@ def to_dict(self): """ dictionary = {} for column in self.__table__.columns: - camel_case_column_name = None - attribute = None - - # Case insensitive alternative to getattr() - needed because column names - # are defined in SNAKE_CASE, class column variables named using camelCase to - # match Python ICAT backend - for a in dir(self): - if a.lower() == column.name.replace("_", "").lower(): - attribute = getattr(self, a) - camel_case_column_name = a - - if camel_case_column_name is not None and attribute is not None: - dictionary[camel_case_column_name] = self._make_serializable(attribute) + attribute_field_name = self.__mapper__.get_property_by_column(column).key + attribute = getattr(self, attribute_field_name) + dictionary[attribute_field_name] = self._make_serializable(attribute) return dictionary diff --git a/test/db/test_entity_helper.py b/test/db/test_entity_helper.py index 121e595f..e1b6d7be 100644 --- a/test/db/test_entity_helper.py +++ b/test/db/test_entity_helper.py @@ -54,12 +54,12 @@ def test_valid_to_dict(self, datafile_entity): "fileSize": 64, "datafileModTime": str(Constants.TEST_MOD_CREATE_DATETIME), "datafileCreateTime": str(Constants.TEST_MOD_CREATE_DATETIME), - "dataset1": 1, + "dataset": 1, "doi": "test doi", "description": "test description", "createId": "test create id", "modId": "test mod id", - "datafileFormat1": 1, + "datafileFormat": 1, "createTime": str(Constants.TEST_MOD_CREATE_DATETIME), } @@ -189,7 +189,7 @@ def test_valid_update_from_dict(self, datafile_entity): "description": "test description", "createId": "test create id", "modId": "test mod id", - "datefileFormat": 1, + "datafileFormat": 1, "createTime": str(Constants.TEST_MOD_CREATE_DATETIME), }