lotr-sut/tests/backend/models/test_inventory_item.py
Fellowship Scholar f6a5823439 init commit
2026-03-29 20:07:56 +00:00

39 lines
1.2 KiB
Python

import pytest
from sut.backend.models.inventory_item import InventoryItem
@pytest.fixture
def inventory_item():
item = InventoryItem()
item.id = 1
item.user_id = 2
item.item_id = 3
item.paid_price = 100
item.base_price_revealed = 120
item.savings_percent = 0.17
item.acquired_price = 100
item.created_at = None
return item
def test_to_dict_returns_expected_keys(inventory_item, monkeypatch):
# Arrange
FakeItem = type("FakeItem", (), {"name": "Sword", "owner_character": "Aragorn", "description": "A fine blade"})
FakeUser = type("FakeUser", (), {"username": "frodo"})
inventory_item.__dict__["item"] = FakeItem()
inventory_item.__dict__["user"] = FakeUser()
# Act
result = inventory_item.to_dict()
# Assert
assert set(result.keys()) == {"id", "user_id", "item_id", "item_name", "owner_character", "description", "paid_price", "base_price_revealed", "savings_percent", "acquired_price", "created_at"}
assert result["item_name"] == "Sword"
assert result["owner_character"] == "Aragorn"
def test_repr_returns_expected(inventory_item):
# Arrange
# (fixture)
# Act
result = repr(inventory_item)
# Assert
assert "user=2" in result and "item=3" in result