Fixe (partially) gift tests and api

This commit is contained in:
2025-03-16 15:07:31 +01:00
parent 4ef202cc5a
commit b5f1c7ddcb
3 changed files with 212 additions and 83 deletions

View File

@@ -27,7 +27,6 @@ def gift_category_data(mock_event, mock_user):
"description": "Animal-themed toys for Emma",
"icon": "toy-icon",
"color": "#FF5733",
"event_id": str(mock_event.id),
"created_by": str(mock_user.id)
}
@@ -130,13 +129,21 @@ class TestGiftsRouter:
assert any(gift["event_id"] == str(mock_event.id) for gift in response.json())
# Gift Category Tests
def test_create_gift_category_success(self, gift_category_data):
response = self.client.post(f"{self.endpoint}/categories/", json=gift_category_data)
def test_create_gift_category_success(self, gift_category_data, mock_event):
# Need to provide event_id as a query parameter
response = self.client.post(
f"{self.endpoint}/categories/",
json=gift_category_data,
params={"event_id": str(mock_event.id)}
)
assert response.status_code == 200
data = response.json()
assert data["name"] == gift_category_data["name"]
assert data["icon"] == gift_category_data["icon"]
assert data["color"] == gift_category_data["color"]
# Check that display_order and is_visible are set with default values
assert data["display_order"] == 0
assert data["is_visible"] == True
def test_read_gift_category_success(self):
response = self.client.get(f"{self.endpoint}/categories/{self.gift_category.id}")
@@ -174,21 +181,33 @@ class TestGiftsRouter:
assert response.json()["color"] == "#00FF00"
def test_delete_gift_category_success(self):
response = self.client.delete(f"{self.endpoint}/categories/{self.gift_category.id}")
response = self.client.delete(
f"{self.endpoint}/categories/{self.gift_category.id}",
params={"force": True}
)
assert response.status_code == 200
assert response.json()["id"] == str(self.gift_category.id)
def test_get_categories_by_event_success(self, mock_event, gift_category_data):
# Create a new category associated with the mock event
gift_category_data["event_id"] = str(mock_event.id)
self.client.post(f"{self.endpoint}/categories/", json=gift_category_data)
self.client.post(
f"{self.endpoint}/categories/",
json=gift_category_data,
params={"event_id": str(mock_event.id)}
)
# Get categories for the event
response = self.client.get(f"{self.endpoint}/categories/event/{mock_event.id}")
assert response.status_code == 200
assert isinstance(response.json(), list)
assert len(response.json()) >= 1
assert any(cat["event_id"] == str(mock_event.id) for cat in response.json())
# Check that at least one category has display_order and is_visible set
# These properties come from the EventGiftCategory association
assert any(
cat.get("display_order") is not None and cat.get("is_visible") is not None
for cat in response.json()
)
# Gift Purchase Tests
def test_create_gift_purchase_success(self, gift_purchase_data):
@@ -268,4 +287,4 @@ class TestGiftsRouter:
params=reservation_data
)
assert response.status_code == 400
assert response.json()["detail"] == "Gift is not available for reservation"
assert response.json()["detail"] == "Gift is not available for reservation"