def test_list_city(self): """Test listing city""" sample_city() sample_city(name='test 2') res = self.client.get(CITY_URL) citys = models.City.objects.all().order_by('id') serializer = serializers.CitySerializer(citys, many=True) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_town_admin_required(self): """Test admin is required""" city = sample_city() payload = {'name': 'town test name', 'city': city.id} res = self.client.post(TOWN_URL, payload) self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
def test_create_town(self): """Test creating a town""" city = sample_city() payload = {'name': 'town test name', 'city': city.id} res = self.client.post(TOWN_URL, payload) self.assertEqual(res.status_code, status.HTTP_201_CREATED) town = models.Town.objects.get(id=res.data['id']) self.assertEqual(town.name, payload['name']) self.assertEqual(town.city.id, payload['city'])
def test_retrieve_city(self): """Test retrieving a city""" city = sample_city() url = detail_city_url(city.id) res = self.client.get(url) serializer = serializers.CitySerializer(city) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_update_town(self): """Test updating town""" town = sample_town() city = sample_city(name='other city') payload = {'name': 'new town name', 'city': city.id} url = detail_town_url(town.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) town.refresh_from_db() self.assertEqual(town.name, payload['name']) self.assertEqual(town.city.id, payload['city'])
def test_update_city(self): """Test updating city""" city = sample_city() region = sample_region(name='other region') payload = {'name': 'new city name', 'region': region.id} url = detail_city_url(city.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) city.refresh_from_db() self.assertEqual(city.name, payload['name']) self.assertEqual(city.region.id, payload['region'])