import pytest, asyncio from TaxisLibrary.taxis_client import TaxisClient, DriverIn, DriverOut, DriverAddressUpdate, DriverStatus @pytest.fixture def client(): c = TaxisClient("http://127.0.0.1:7000") asyncio.run(c.login("root", "12345")) return c class TestDrivers: @pytest.mark.asyncio async def test_create_driver(self, client): driver = DriverIn(name="Ivan", phone="+79281234567") result = await client.create_driver(driver) assert isinstance(result, DriverOut) await client.delete_driver(result.id) @pytest.mark.asyncio async def test_get_and_update_driver(self, client): d = await client.create_driver(DriverIn(name="Test", phone="+79281234568")) got = await client.get_driver(d.id) assert isinstance(got, DriverOut) updated = await client.update_driver(d.id, DriverIn(name="Updated", phone="79281234568")) assert isinstance(updated, DriverOut) await client.delete_driver(d.id) @pytest.mark.asyncio async def test_update_driver_status_and_address(self, client): d = await client.create_driver(DriverIn(name="Status", phone="79281234569")) await client.update_driver_status(d.id, DriverStatus.FREE) await client.update_driver_address(d.id, DriverAddressUpdate(address="город Ставрополь улица Мира 10")) await client.delete_driver(d.id)