# tests/test_shops.py import pytest class TestShopsAPI: def test_create_shop(self, client, auth_headers): """Test creating a new shop""" shop_data = { "shop_code": "NEWSHOP", "shop_name": "New Shop", "description": "A new test shop" } response = client.post("/api/v1/shops", headers=auth_headers, json=shop_data) assert response.status_code == 200 data = response.json() assert data["shop_code"] == "NEWSHOP" assert data["shop_name"] == "New Shop" assert data["is_active"] == True def test_create_shop_duplicate_code(self, client, auth_headers, test_shop): """Test creating shop with duplicate code""" shop_data = { "shop_code": "TESTSHOP", # Same as test_shop "shop_name": "Another Shop" } response = client.post("/api/v1/shops", headers=auth_headers, json=shop_data) assert response.status_code == 400 assert "already exists" in response.json()["detail"] def test_get_shops(self, client, auth_headers, test_shop): """Test getting shops list""" response = client.get("/api/v1/shops", headers=auth_headers) assert response.status_code == 200 data = response.json() assert data["total"] >= 1 assert len(data["shops"]) >= 1 def test_get_shop_by_code(self, client, auth_headers, test_shop): """Test getting specific shop""" response = client.get(f"/api/v1/shops/{test_shop.shop_code}", headers=auth_headers) assert response.status_code == 200 data = response.json() assert data["shop_code"] == test_shop.shop_code assert data["shop_name"] == test_shop.shop_name def test_shops_require_auth(self, client): """Test that shop endpoints require authentication""" response = client.get("/api/v1/shops") assert response.status_code == 403