You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.9 KiB

from django.contrib.gis.geos import Polygon
from django.urls import reverse
from rest_framework import status
from rest_framework.test import APITestCase
from ..models import Provider, ServiceArea
class ServiceAreaCreateTests(APITestCase):
endpoint = reverse('service-area-list')
@classmethod
def setUpTestData(cls):
super(ServiceAreaCreateTests, cls).setUpTestData()
cls.provider = Provider.objects.create(**{
'currency': 'USD',
'email': 'nicolas@email.com',
'language': 'EN',
'name': 'Test',
'phone_number': '+34685061901'
})
cls.another_provider = Provider.objects.create(**{
'currency': 'USD',
'email': 'another@email.com',
'language': 'SP',
'name': 'Test 2',
'phone_number': '+34685061456'
})
cls.service_area = ServiceArea.objects.create(
polygon=Polygon([[0.0, 0.0], [0.0, 50.0], [50.0, 50.0], [50.0, 0.0], [0.0, 0.0]]),
provider_id=cls.provider.id,
price=500.5,
name='Test area'
)
cls.another_service_area = ServiceArea.objects.create(
polygon=Polygon([[50.0, 50.0], [50.0, 100.0], [100.0, 100.0], [100.0, 50.0], [50.0, 50.0]]),
provider_id=cls.another_provider.id,
price=85.5,
name='Test area 2'
)
def test_service_area_list(self):
response = self.client.get(
self.endpoint
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
response_data = response.json()
expected_ids = {self.service_area.id, self.another_service_area.id}
self.assertEqual(response_data['count'], len(expected_ids))
results = response_data['results']
for result in results:
self.assertIn(result['id'], expected_ids)