Skip to content

Commit

Permalink
Refactor update ItemService tests #346
Browse files Browse the repository at this point in the history
  • Loading branch information
joelvdavies committed Aug 8, 2024
1 parent 735cac9 commit 467e90b
Show file tree
Hide file tree
Showing 4 changed files with 459 additions and 875 deletions.
43 changes: 30 additions & 13 deletions test/mock_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -443,9 +443,7 @@
CATALOGUE_ITEM_DATA_WITH_MANDATORY_PROPERTIES_ONLY = {
**CATALOGUE_ITEM_DATA_REQUIRED_VALUES_ONLY,
"name": "Catalogue Item With Mandatory Properties Only",
"properties": [
PROPERTY_DATA_BOOLEAN_MANDATORY_TRUE,
],
"properties": [PROPERTY_DATA_BOOLEAN_MANDATORY_TRUE],
}

CATALOGUE_ITEM_GET_DATA_WITH_MANDATORY_PROPERTIES_ONLY = {
Expand All @@ -464,6 +462,8 @@
BASE_CATALOGUE_ITEM_DATA_WITH_PROPERTIES = CATALOGUE_ITEM_DATA_WITH_ALL_PROPERTIES


# Required values only

ITEM_DATA_REQUIRED_VALUES_ONLY = {
"is_defective": False,
"usage_status": "In Use",
Expand All @@ -476,6 +476,33 @@
"usage_status_id": str(ObjectId()),
}

# All values, no properties
ITEM_DATA_ALL_VALUES_NO_PROPERTIES = {
**ITEM_DATA_REQUIRED_VALUES_ONLY,
"purchase_order_number": "1234-123",
"warranty_end_date": "2015-11-15T23:59:59Z",
"asset_number": "1234-123456",
"serial_number": "1234-123456-123",
"delivered_date": "2012-12-05T12:00:00Z",
"notes": "Test notes",
}

ITEM_IN_DATA_ALL_VALUES_NO_PROPERTIES = {
**ITEM_DATA_ALL_VALUES_NO_PROPERTIES,
"catalogue_item_id": str(ObjectId()),
"system_id": str(ObjectId()),
"usage_status_id": str(ObjectId()),
"usage_status": "In Use",
}


# Only mandatory properties

ITEM_DATA_WITH_MANDATORY_PROPERTIES_ONLY = {
**ITEM_DATA_REQUIRED_VALUES_ONLY,
"properties": [PROPERTY_DATA_BOOLEAN_MANDATORY_FALSE],
}

# All properties

ITEM_DATA_WITH_ALL_PROPERTIES = {
Expand All @@ -487,16 +514,6 @@
],
}

# pylint:disable=fixme
# TODO: Replace in later item's PR when have a suitable name for one
ITEM_IN_DATA_A = {
"catalogue_item_id": str(ObjectId()),
"system_id": str(ObjectId()),
"is_defective": False,
"usage_status_id": str(ObjectId()),
"usage_status": "In Use",
}

# --------------------------------- MANUFACTURERS ---------------------------------

# Required values only
Expand Down
8 changes: 4 additions & 4 deletions test/unit/repositories/test_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""

from test.mock_data import (
ITEM_IN_DATA_A,
ITEM_IN_DATA_ALL_VALUES_NO_PROPERTIES,
ITEM_IN_DATA_REQUIRED_VALUES_ONLY,
PROPERTY_DATA_STRING_MANDATORY_TEXT,
SYSTEM_IN_DATA_NO_PARENT_A,
Expand Down Expand Up @@ -317,21 +317,21 @@ class TestList(ListDSL):
def test_list(self):
"""Test listing all items."""

self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_A])
self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_ALL_VALUES_NO_PROPERTIES])
self.call_list(system_id=None, catalogue_item_id=None)
self.check_list_success()

def test_list_with_system_id_filter(self):
"""Test listing all items with a given `system_id`."""

self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_A])
self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_ALL_VALUES_NO_PROPERTIES])
self.call_list(system_id=str(ObjectId()), catalogue_item_id=None)
self.check_list_success()

def test_list_with_catalogue_category_id_filter(self):
"""Test listing all items with a given `catalogue_category_id`."""

self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_A])
self.mock_list([ITEM_IN_DATA_REQUIRED_VALUES_ONLY, ITEM_IN_DATA_ALL_VALUES_NO_PROPERTIES])
self.call_list(system_id=None, catalogue_item_id=str(ObjectId()))
self.check_list_success()

Expand Down
10 changes: 5 additions & 5 deletions test/unit/services/test_catalogue_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ def mock_update(
ManufacturerOut(
**{
**ManufacturerIn(**new_manufacturer_in_data).model_dump(),
"_id": new_manufacturer_in_data,
"_id": catalogue_item_update_data["manufacturer_id"],
},
)
if new_manufacturer_in_data
Expand Down Expand Up @@ -816,8 +816,8 @@ def test_update_all_fields_except_ids_or_properties_with_no_children(self):

self.mock_update(
catalogue_item_id,
catalogue_item_update_data=CATALOGUE_ITEM_DATA_REQUIRED_VALUES_ONLY,
stored_catalogue_item_data=CATALOGUE_ITEM_DATA_NOT_OBSOLETE_NO_PROPERTIES,
catalogue_item_update_data=CATALOGUE_ITEM_DATA_NOT_OBSOLETE_NO_PROPERTIES,
stored_catalogue_item_data=CATALOGUE_ITEM_DATA_REQUIRED_VALUES_ONLY,
)
self.call_update(catalogue_item_id)
self.check_update_success()
Expand All @@ -830,8 +830,8 @@ def test_update_all_fields_except_ids_or_properties_with_children(self):

self.mock_update(
catalogue_item_id,
catalogue_item_update_data=CATALOGUE_ITEM_DATA_REQUIRED_VALUES_ONLY,
stored_catalogue_item_data=CATALOGUE_ITEM_DATA_NOT_OBSOLETE_NO_PROPERTIES,
catalogue_item_update_data=CATALOGUE_ITEM_DATA_NOT_OBSOLETE_NO_PROPERTIES,
stored_catalogue_item_data=CATALOGUE_ITEM_DATA_REQUIRED_VALUES_ONLY,
has_child_elements=True,
)
self.call_update(catalogue_item_id)
Expand Down
Loading

0 comments on commit 467e90b

Please sign in to comment.