示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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'])
示例#4
0
    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)
示例#5
0
    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'])
示例#6
0
    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'])