Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Der-Henning
GitHub Repository: Der-Henning/tgtg
Path: blob/main/tests/test_reservations.py
725 views
1
from unittest.mock import MagicMock
2
3
import pytest
4
5
from tgtg_scanner.models.item import Item
6
from tgtg_scanner.models.reservations import Order, Reservation, Reservations
7
8
9
@pytest.fixture(scope="function")
10
def reservations():
11
mock_client = MagicMock()
12
return Reservations(mock_client)
13
14
15
def test_reserve(reservations: Reservations):
16
reservations.reserve("123", "Test Item")
17
assert len(reservations.reservation_query) == 1
18
19
20
def test_make_orders(reservations: Reservations, tgtg_item: dict):
21
callback_mock = MagicMock()
22
reservations.reserve("123", "Test Item")
23
reservations.make_orders({"123": Item(tgtg_item)}, callback_mock)
24
assert len(reservations.active_orders) == 1
25
assert len(reservations.reservation_query) == 0
26
callback_mock.assert_called_once_with(Reservation("123", 1, "Test Item"))
27
28
29
def test_update_active_orders(reservations: Reservations):
30
order = Order("1", "123", 1, "Test Item")
31
reservations.client.get_order_status.return_value = {"state": "RESERVED"} # type: ignore[attr-defined]
32
reservations.active_orders = {order.id: order}
33
reservations.update_active_orders()
34
assert len(reservations.active_orders) == 1
35
reservations.client.get_order_status.return_value = {"state": "CANELLED"} # type: ignore[attr-defined]
36
reservations.update_active_orders()
37
assert len(reservations.active_orders) == 0
38
39
40
def test_cancel_order(reservations: Reservations):
41
order = Order("1", "123", 1, "Test Item")
42
reservations.active_orders = {order.id: order}
43
reservations.cancel_order(order.id)
44
45
46
def test_cancel_all_orders(reservations: Reservations):
47
order1 = Order("1", "123", 1, "Test Item 1")
48
order2 = Order("2", "123", 2, "Test Item 2")
49
reservations.active_orders = {order1.id: order1, order2.id: order2}
50
reservations.cancel_all_orders()
51
52