57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
"""
|
|
Contract Tests: Service Requests API
|
|
|
|
Endpoint: /solicitudes/service-requests/
|
|
App: solicitudes
|
|
|
|
Creates and manages service requests (appointment bookings).
|
|
"""
|
|
|
|
from ..base import ContractTestCase
|
|
from ..endpoints import Endpoints
|
|
|
|
|
|
class TestServiceRequestList(ContractTestCase):
|
|
"""GET /solicitudes/service-requests/"""
|
|
|
|
def test_list_returns_200(self):
|
|
"""GET should return list of service requests (with pagination)"""
|
|
response = self.get(Endpoints.SERVICE_REQUESTS, params={"page_size": 1})
|
|
|
|
self.assert_status(response, 200)
|
|
|
|
def test_returns_list(self):
|
|
"""GET should return a list (possibly paginated)"""
|
|
response = self.get(Endpoints.SERVICE_REQUESTS, params={"page_size": 10})
|
|
|
|
data = response.data
|
|
requests_list = data["results"] if isinstance(data, dict) and "results" in data else data
|
|
self.assertIsInstance(requests_list, list)
|
|
|
|
|
|
class TestServiceRequestFields(ContractTestCase):
|
|
"""Field validation for service requests"""
|
|
|
|
def test_has_state_field(self):
|
|
"""Service requests should have a state/status field"""
|
|
response = self.get(Endpoints.SERVICE_REQUESTS, params={"page_size": 1})
|
|
|
|
data = response.data
|
|
requests_list = data["results"] if isinstance(data, dict) and "results" in data else data
|
|
|
|
if len(requests_list) > 0:
|
|
req = requests_list[0]
|
|
has_state = "state" in req or "status" in req
|
|
self.assertTrue(has_state, "Service request should have state/status field")
|
|
|
|
|
|
class TestServiceRequestCreate(ContractTestCase):
|
|
"""POST /solicitudes/service-requests/"""
|
|
|
|
def test_create_requires_fields(self):
|
|
"""Creating service request with empty data should fail"""
|
|
response = self.post(Endpoints.SERVICE_REQUESTS, {})
|
|
|
|
# Should return 400 with validation errors
|
|
self.assert_status(response, 400)
|