# tests/test_error_handling.py import pytest class TestErrorHandling: def test_invalid_json(self, client, auth_headers): """Test handling of invalid JSON""" response = client.post("/api/v1/product", headers=auth_headers, content="invalid json") assert response.status_code == 422 # Validation error def test_missing_required_fields(self, client, auth_headers): """Test handling of missing required fields""" response = client.post("/api/v1/product", headers=auth_headers, json={"title": "Test"}) # Missing product_id assert response.status_code == 422 def test_invalid_authentication(self, client): """Test handling of invalid authentication""" response = client.get("/api/v1/product", headers={"Authorization": "Bearer invalid_token"}) assert response.status_code == 401 # Token is not valid def test_nonexistent_resource(self, client, auth_headers): """Test handling of nonexistent resource access""" response = client.get("/api/v1/product/NONEXISTENT", headers=auth_headers) assert response.status_code == 404 response = client.get("/api/v1/shop/NONEXISTENT", headers=auth_headers) assert response.status_code == 404 def test_duplicate_resource_creation(self, client, auth_headers, test_product): """Test handling of duplicate resource creation""" product_data = { "product_id": test_product.product_id, # Duplicate ID "title": "Another Product" } response = client.post("/api/v1/product", headers=auth_headers, json=product_data) assert response.status_code == 400