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