From e66454734a437ebe18fef164d6c415799f1aa628 Mon Sep 17 00:00:00 2001 From: Sergey Golitsynskiy Date: Thu, 21 Oct 2021 18:50:25 -0400 Subject: [PATCH] Move mapping tests into own dir; start refactoring --- test/unit/data/model/mapping/__init__.py | 0 test/unit/data/model/mapping/common.py | 19 ++++++++++++++++ .../test_install_model_mapping.py | 0 .../model/{ => mapping}/test_model_mapping.py | 22 +------------------ .../model/{ => mapping}/test_test_mapping.py | 0 5 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 test/unit/data/model/mapping/__init__.py create mode 100644 test/unit/data/model/mapping/common.py rename test/unit/data/model/{ => mapping}/test_install_model_mapping.py (100%) rename test/unit/data/model/{ => mapping}/test_model_mapping.py (99%) rename test/unit/data/model/{ => mapping}/test_test_mapping.py (100%) diff --git a/test/unit/data/model/mapping/__init__.py b/test/unit/data/model/mapping/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/unit/data/model/mapping/common.py b/test/unit/data/model/mapping/common.py new file mode 100644 index 00000000000..3c72213ef0f --- /dev/null +++ b/test/unit/data/model/mapping/common.py @@ -0,0 +1,19 @@ +def collection_consists_of_objects(collection, *objects): + """ + Returns True iff list(collection) == list(objects), where object equality is determined + by primary key equality: object1.id == object2.id. + """ + if len(collection) != len(objects): # False if lengths are different + return False + if not collection: # True if both are empty + return True + + # Sort, then compare each member by its 'id' attribute, which must be its primary key. + collection.sort(key=lambda item: item.id) + objects = list(objects) + objects.sort(key=lambda item: item.id) + + for item1, item2 in zip(collection, objects): + if item1.id is None or item2.id is None or item1.id != item2.id: + return False + return True diff --git a/test/unit/data/model/test_install_model_mapping.py b/test/unit/data/model/mapping/test_install_model_mapping.py similarity index 100% rename from test/unit/data/model/test_install_model_mapping.py rename to test/unit/data/model/mapping/test_install_model_mapping.py diff --git a/test/unit/data/model/test_model_mapping.py b/test/unit/data/model/mapping/test_model_mapping.py similarity index 99% rename from test/unit/data/model/test_model_mapping.py rename to test/unit/data/model/mapping/test_model_mapping.py index 543ea273a78..3b307d2c520 100644 --- a/test/unit/data/model/test_model_mapping.py +++ b/test/unit/data/model/mapping/test_model_mapping.py @@ -72,6 +72,7 @@ from sqlalchemy import ( ) import galaxy.model.mapping as mapping +from .common import collection_consists_of_objects class BaseTest: @@ -7483,27 +7484,6 @@ def get_unique_value(): return uuid4().hex -def collection_consists_of_objects(collection, *objects): - """ - Returns True iff list(collection) == list(objects), where object equality is determined - by primary key equality: object1.id == object2.id. - """ - if len(collection) != len(objects): # False if lengths are different - return False - if not collection: # True if both are empty - return True - - # Sort, then compare each member by its 'id' attribute, which must be its primary key. - collection.sort(key=lambda item: item.id) - objects = list(objects) - objects.sort(key=lambda item: item.id) - - for item1, item2 in zip(collection, objects): - if item1.id is None or item2.id is None or item1.id != item2.id: - return False - return True - - def _run_average_rating_test(session, obj, user, obj_rating_association_factory): # obj has been expunged; to access its deferred properties, # it needs to be added back to the session. diff --git a/test/unit/data/model/test_test_mapping.py b/test/unit/data/model/mapping/test_test_mapping.py similarity index 100% rename from test/unit/data/model/test_test_mapping.py rename to test/unit/data/model/mapping/test_test_mapping.py