Refactoring code for modular approach
This commit is contained in:
55
tests/test_shops.py
Normal file
55
tests/test_shops.py
Normal file
@@ -0,0 +1,55 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user