diff --git a/test/e2e/test_system.py b/test/e2e/test_system.py index 3607c5b7..e927906f 100644 --- a/test/e2e/test_system.py +++ b/test/e2e/test_system.py @@ -2,7 +2,6 @@ End-to-End tests for the system router """ -from datetime import datetime from test.conftest import add_ids_to_properties from test.e2e.conftest import E2ETestHelpers, replace_unit_values_with_ids_in_properties from test.e2e.mock_schemas import USAGE_STATUS_POST_B diff --git a/test/unit/repositories/conftest.py b/test/unit/repositories/conftest.py index 691689be..262f78e3 100644 --- a/test/unit/repositories/conftest.py +++ b/test/unit/repositories/conftest.py @@ -177,6 +177,8 @@ def mock_update_many(collection_mock: Mock) -> None: collection_mock.update_many.return_value = update_many_result_mock +# pylint:disable=fixme +# TODO: Remove this once tests refactored - should be able to just use `RepositoryTestHelpers.` @pytest.fixture(name="test_helpers") def fixture_test_helpers() -> Type[RepositoryTestHelpers]: """ diff --git a/test/unit/repositories/test_catalogue_category.py b/test/unit/repositories/test_catalogue_category.py index e636d4d8..67cc4528 100644 --- a/test/unit/repositories/test_catalogue_category.py +++ b/test/unit/repositories/test_catalogue_category.py @@ -44,7 +44,6 @@ class CatalogueCategoryRepoDSL: """Base class for CatalogueCategoryRepo unit tests""" # pylint:disable=too-many-instance-attributes - test_helpers: RepositoryTestHelpers mock_database: Mock mock_utils: Mock catalogue_category_repository: CatalogueCategoryRepo @@ -58,10 +57,9 @@ class CatalogueCategoryRepoDSL: _mock_child_catalogue_item_data: Optional[dict] @pytest.fixture(autouse=True) - def setup(self, test_helpers, database_mock): + def setup(self, database_mock): """Setup fixtures""" - self.test_helpers = test_helpers self.mock_database = database_mock self.catalogue_category_repository = CatalogueCategoryRepo(database_mock) self.catalogue_categories_collection = database_mock.catalogue_categories @@ -88,8 +86,8 @@ def mock_has_child_elements( self._mock_child_catalogue_category_data = child_catalogue_category_data self._mock_child_catalogue_item_data = child_catalogue_item_data - self.test_helpers.mock_find_one(self.catalogue_categories_collection, child_catalogue_category_data) - self.test_helpers.mock_find_one(self.catalogue_items_collection, child_catalogue_item_data) + RepositoryTestHelpers.mock_find_one(self.catalogue_categories_collection, child_catalogue_category_data) + RepositoryTestHelpers.mock_find_one(self.catalogue_items_collection, child_catalogue_item_data) def check_has_child_elements_performed_expected_calls(self, expected_catalogue_category_id: str): """Checks that a call to `has_child_elements` performed the expected function calls @@ -144,7 +142,7 @@ def mock_create( if catalogue_category_in_data["parent_id"]: # If parent_catalogue_category_data is given as None, then it is intentionally supposed to be, otherwise # pass through CatalogueCategoryIn first to ensure it has creation and modified times - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, ( { @@ -155,7 +153,7 @@ def mock_create( else None ), ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, ( {**CatalogueCategoryIn(**duplicate_catalogue_category_in_data).model_dump(), "_id": ObjectId()} @@ -163,8 +161,8 @@ def mock_create( else None ), ) - self.test_helpers.mock_insert_one(self.catalogue_categories_collection, inserted_catalogue_category_id) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_insert_one(self.catalogue_categories_collection, inserted_catalogue_category_id) + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, {**self._catalogue_category_in.model_dump(by_alias=True), "_id": inserted_catalogue_category_id}, ) @@ -317,7 +315,7 @@ def mock_get(self, catalogue_category_id: str, catalogue_category_in_data: Optio else None ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, self._expected_catalogue_category_out.model_dump() if self._expected_catalogue_category_out else None, ) @@ -474,7 +472,7 @@ def mock_list(self, catalogue_categories_in_data: list[dict]): for catalogue_category_in_data in catalogue_categories_in_data ] - self.test_helpers.mock_find( + RepositoryTestHelpers.mock_find( self.catalogue_categories_collection, [catalogue_category_out.model_dump() for catalogue_category_out in self._expected_catalogue_categories_out], ) @@ -595,7 +593,7 @@ def mock_update( if new_catalogue_category_in_data["parent_id"]: # If new_parent_catalogue_category_data is given as none, then it is intentionally supposed to be, otherwise # pass through CatalogueCategoryIn first to ensure it has creation and modified times - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, ( { @@ -616,7 +614,7 @@ def mock_update( if stored_catalogue_category_in_data else None ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, self._stored_catalogue_category_out.model_dump() if self._stored_catalogue_category_out else None, ) @@ -629,7 +627,7 @@ def mock_update( self._stored_catalogue_category_out and (self._catalogue_category_in.name != self._stored_catalogue_category_out.name) ) or self._moving_catalogue_category: - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, ( { @@ -645,7 +643,7 @@ def mock_update( self._expected_catalogue_category_out = CatalogueCategoryOut( **self._catalogue_category_in.model_dump(), id=CustomObjectId(catalogue_category_id) ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.catalogue_categories_collection, self._expected_catalogue_category_out.model_dump() ) @@ -953,7 +951,7 @@ def mock_delete( """ self.mock_has_child_elements(child_catalogue_category_data, child_catalogue_item_data) - self.test_helpers.mock_delete_one(self.catalogue_categories_collection, deleted_count) + RepositoryTestHelpers.mock_delete_one(self.catalogue_categories_collection, deleted_count) def call_delete(self, catalogue_category_id: str): """Calls the CatalogueCategoryRepo `delete` method""" @@ -1076,7 +1074,7 @@ def mock_create_property(self, property_in_data: dict): self._property_in = CatalogueCategoryPropertyIn(**property_in_data) self._expected_property_out = CatalogueCategoryPropertyOut(**self._property_in.model_dump(by_alias=True)) - self.test_helpers.mock_update_one(self.catalogue_categories_collection) + RepositoryTestHelpers.mock_update_one(self.catalogue_categories_collection) def call_create_property(self, catalogue_category_id: str): """Calls the CatalogueCategoryRepo `create_property` method with the appropriate data from a prior call to @@ -1157,7 +1155,7 @@ def mock_update_property(self, property_in_data: dict): self._property_in = CatalogueCategoryPropertyIn(**property_in_data) self._expected_property_out = CatalogueCategoryPropertyOut(**self._property_in.model_dump(by_alias=True)) - self.test_helpers.mock_update_one(self.catalogue_categories_collection) + RepositoryTestHelpers.mock_update_one(self.catalogue_categories_collection) def call_update_property(self, catalogue_category_id: str, property_id: str): """Calls the CatalogueCategoryRepo `update_property` method with the appropriate data from a prior call to diff --git a/test/unit/repositories/test_system.py b/test/unit/repositories/test_system.py index fe3b47d1..2a051308 100644 --- a/test/unit/repositories/test_system.py +++ b/test/unit/repositories/test_system.py @@ -32,7 +32,6 @@ class SystemRepoDSL: """Base class for SystemRepo unit tests""" # pylint:disable=too-many-instance-attributes - test_helpers: RepositoryTestHelpers mock_database: Mock mock_utils: Mock system_repository: SystemRepo @@ -46,10 +45,9 @@ class SystemRepoDSL: _mock_child_item_data: Optional[dict] @pytest.fixture(autouse=True) - def setup(self, test_helpers, database_mock): + def setup(self, database_mock): """Setup fixtures""" - self.test_helpers = test_helpers self.mock_database = database_mock self.system_repository = SystemRepo(database_mock) self.systems_collection = database_mock.systems @@ -74,8 +72,8 @@ def mock_has_child_elements(self, child_system_data: Optional[dict] = None, chil self._mock_child_system_data = child_system_data self._mock_child_item_data = child_item_data - self.test_helpers.mock_find_one(self.systems_collection, child_system_data) - self.test_helpers.mock_find_one(self.items_collection, child_item_data) + RepositoryTestHelpers.mock_find_one(self.systems_collection, child_system_data) + RepositoryTestHelpers.mock_find_one(self.items_collection, child_item_data) def check_has_child_elements_performed_expected_calls(self, expected_system_id: str): """Checks that a call to `_has_child_elements` performed the expected function calls @@ -98,7 +96,7 @@ def mock_is_duplicate_system(self, duplicate_system_in_data: Optional[dict] = No :param duplicate_system_in_data: Either None or a dictionary containing system data for a duplicate system """ - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.systems_collection, ( {**SystemIn(**duplicate_system_in_data).model_dump(), "_id": ObjectId()} @@ -159,7 +157,7 @@ def mock_create( if system_in_data["parent_id"]: # If parent_system_data is given as None, then it is intentionally supposed to be, otherwise # pass through SystemIn first to ensure it has creation and modified times - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.systems_collection, ( {**SystemIn(**parent_system_in_data).model_dump(), "_id": system_in_data["parent_id"]} @@ -168,8 +166,8 @@ def mock_create( ), ) self.mock_is_duplicate_system(duplicate_system_in_data) - self.test_helpers.mock_insert_one(self.systems_collection, inserted_system_id) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_insert_one(self.systems_collection, inserted_system_id) + RepositoryTestHelpers.mock_find_one( self.systems_collection, {**self._system_in.model_dump(), "_id": inserted_system_id} ) @@ -281,7 +279,7 @@ def mock_get(self, system_id: str, system_in_data: Optional[dict]): else None ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.systems_collection, self._expected_system_out.model_dump() if self._expected_system_out else None ) @@ -420,7 +418,7 @@ def mock_list(self, systems_in_data: list[dict]): SystemOut(**SystemIn(**system_in_data).model_dump(), id=ObjectId()) for system_in_data in systems_in_data ] - self.test_helpers.mock_find( + RepositoryTestHelpers.mock_find( self.systems_collection, [system_out.model_dump() for system_out in self._expected_systems_out] ) @@ -523,7 +521,7 @@ def mock_update( if new_system_in_data["parent_id"]: # If new_parent_system_data is given as none, then it is intentionally supposed to be, otherwise # pass through SystemIn first to ensure it has creation and modified times - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.systems_collection, ( {**SystemIn(**new_parent_system_in_data).model_dump(), "_id": new_system_in_data["parent_id"]} @@ -538,7 +536,7 @@ def mock_update( if stored_system_in_data else None ) - self.test_helpers.mock_find_one( + RepositoryTestHelpers.mock_find_one( self.systems_collection, self._stored_system_out.model_dump() if self._stored_system_out else None ) @@ -551,7 +549,7 @@ def mock_update( # Final system after update self._expected_system_out = SystemOut(**self._system_in.model_dump(), id=CustomObjectId(system_id)) - self.test_helpers.mock_find_one(self.systems_collection, self._expected_system_out.model_dump()) + RepositoryTestHelpers.mock_find_one(self.systems_collection, self._expected_system_out.model_dump()) if self._moving_system: mock_aggregation_pipeline = MagicMock() @@ -765,7 +763,7 @@ def mock_delete( """ self.mock_has_child_elements(child_system_data, child_item_data) - self.test_helpers.mock_delete_one(self.systems_collection, deleted_count) + RepositoryTestHelpers.mock_delete_one(self.systems_collection, deleted_count) def call_delete(self, system_id: str): """Calls the SystemRepo `delete` method"""