示例#1
0
    def test_list_town(self):
        """Test listing town"""
        sample_town()
        sample_town(name='test 2')

        res = self.client.get(TOWN_URL)

        towns = models.Town.objects.all().order_by('id')
        serializer = serializers.TownSerializer(towns, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
示例#2
0
    def test_update_attribute_of_place(self):
        """Test update place attribute: town or type"""
        place = sample_place()
        # oldProject = sample_project()
        # place.projects.add(oldProject)
        # newProject = sample_project('new project')
        town = sample_town('new town')
        payload = {'town_id': town.id}

        url = update_attribute_place_url(place.id)
        res = self.client.patch(url, payload)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        place.refresh_from_db()
        # projects = place.projects.all()
        # projectSerializer = serializers.ProjectSerializer(
        #                                   projects,
        #                                   many=True
        #                               )
        # self.assertEqual(
        #         serializers.ProjectSerializer(newProject)
        #         .data,
        #         projectSerializer.data[0]
        #     )
        town = place.town
        townSerializer = serializers.TownSerializer(town)
        self.assertEqual(
            serializers.TownSerializer(town).data, townSerializer.data)
示例#3
0
    def test_place_admin_required(self):
        """Test admin is required"""
        town = sample_town()
        payload = {'name': 'place test name', 'town': town.id}

        res = self.client.post(PLACE_URL, payload)

        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
示例#4
0
    def test_retrieve_town(self):
        """Test retrieving a town"""
        town = sample_town()

        url = detail_town_url(town.id)
        res = self.client.get(url)

        serializer = serializers.TownSerializer(town)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
示例#5
0
    def test_update_place(self):
        """Test updating place"""
        place = sample_place()
        town = sample_town(name='other town')
        payload = {'name': 'new place name', 'town': town.id}

        url = detail_place_url(place.id)
        res = self.client.patch(url, payload)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        place.refresh_from_db()

        self.assertEqual(place.name, payload['name'])
        self.assertEqual(place.town.id, payload['town'])
示例#6
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'])
示例#7
0
    def test_create_place(self):
        """Test creating a place"""
        town = sample_town()
        type = sample_placeType()
        payload = {
            'name': 'place test name',
            'town': town.id,
            'type': type.id,
            'codeSite': 10,
            'latitudeDec': 10.1,
            'longitudeDec': 9.1
        }

        res = self.client.post(PLACE_URL, payload)

        self.assertEqual(res.status_code, status.HTTP_201_CREATED)
        place = models.Place.objects.get(id=res.data['id'])
        self.assertEqual(place.name, payload['name'])
        self.assertEqual(place.town.id, payload['town'])