def test_list_country(self): """Test listing countries""" sample_country() sample_country(name='test 2') res = self.client.get(COUNTRY_URL) countries = models.Country.objects.all().order_by('id') serializer = serializers.CountrySerializer(countries, many=True) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_region_admin_required(self): """Test admin is required""" country = sample_country() payload = {'name': 'region test name', 'country': country.id} res = self.client.post(REGION_URL, payload) self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
def test_create_region(self): """Test creating a region""" country = sample_country() payload = {'name': 'region test name', 'country': country.id} res = self.client.post(REGION_URL, payload) self.assertEqual(res.status_code, status.HTTP_201_CREATED) region = models.Region.objects.get(id=res.data['id']) self.assertEqual(region.name, payload['name']) self.assertEqual(region.country.id, payload['country'])
def test_retrieve_country(self): """Test retrieving a country""" country = sample_country() url = detail_country_url(country.id) res = self.client.get(url) serializer = serializers.CountrySerializer(country) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_update_country(self): """Test updating country""" country = sample_country() payload = {'name': 'new country name'} url = detail_country_url(country.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) country.refresh_from_db() self.assertEqual(country.name, payload['name'])
def test_update_region(self): """Test updating region""" region = sample_region() country = sample_country(name='other country') payload = {'name': 'new region name', 'country': country.id} url = detail_region_url(region.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) region.refresh_from_db() self.assertEqual(region.name, payload['name']) self.assertEqual(region.country.id, payload['country'])