import pytest, asyncio from TaxisLibrary.taxis_client import ( TaxisClient, OrderIn, OrderOut, OrderStatus, ClientIn, ClientOut, DriverIn, DriverOut ) @pytest.fixture def client(): c = TaxisClient("http://127.0.0.1:7000") asyncio.run(c.login("root", "12345")) return c class TestOrders: @pytest.mark.asyncio async def test_create_and_update_order(self, client): # создаём клиента c_in = ClientIn(name="Пётр", phone="+79281230001") created_client = await client.create_client(c_in) # создаём заказ с корректными адресами order = OrderIn( client_id=created_client.id, from_address="Город Ставрополь улица Ленина 1", to_address="Город Ставрополь улица Мира 10" ) created_order = await client.create_order(order) assert isinstance(created_order, OrderOut) # обновляем статус updated = await client.update_order_status(created_order.id, OrderStatus.SEARCHING_TAXI) assert isinstance(updated, OrderOut) # чистим await client.delete_order(created_order.id) await client.delete_client(created_client.id) @pytest.mark.asyncio async def test_list_orders(self, client): result = await client.list_orders() assert isinstance(result, list) if result: assert all(isinstance(o, OrderOut) for o in result)