Ejemplo n.º 1
0
    def test_list_genera(self):
        """Test listing genera"""
        sample_insectGenus()
        sample_insectGenus(name='test 2')

        res = self.client.get(GENUS_URL)

        genera = models.InsectGenera.objects.all().order_by('id')
        serializer = serializers.InsectGeneraSerializer(genera, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
Ejemplo n.º 2
0
    def test_create_specie_no_name_fail(self):
        """Test creating a specie without name should fail"""
        genus = sample_insectGenus()
        payload = {'name': '', 'genus': genus.id}

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

        self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 3
0
    def test_specie_admin_required(self):
        """Test admin is required"""
        genus = sample_insectGenus()
        payload = {'name': 'specie test name', 'genus': genus.id}

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

        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 4
0
    def test_retrieve_genus(self):
        """Test retrieving a genus"""
        genus = sample_insectGenus()

        url = detail_genus_url(genus.id)
        res = self.client.get(url)

        serializer = serializers.InsectGeneraSerializer(genus)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)
Ejemplo n.º 5
0
    def test_update_genus(self):
        """Test updating genus"""
        genus = sample_insectGenus()
        tribe = sample_insectTribe(name='other tribe')
        payload = {'name': 'new genus name', 'tribe': tribe.id}

        url = detail_genus_url(genus.id)
        res = self.client.patch(url, payload)

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

        self.assertEqual(genus.name, payload['name'])
        self.assertEqual(genus.tribe.id, payload['tribe'])
Ejemplo n.º 6
0
    def test_create_specie(self):
        """Test creating a specie"""
        genus = sample_insectGenus()
        godfather = sample_insectGodfather()
        payload = {
            'name': 'specie test name',
            'genus': genus.id,
            'godfather': godfather.id,
            'year': 2010
        }

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

        self.assertEqual(res.status_code, status.HTTP_201_CREATED)
        specie = models.InsectSpecies.objects.get(id=res.data['id'])
        self.assertEqual(specie.name, payload['name'])
        self.assertEqual(specie.genus.id, payload['genus'])
Ejemplo n.º 7
0
    def test_update_specie(self):
        """Test updating specie"""
        specie = sample_insectSpecie()
        genus = sample_insectGenus(name='other genus')
        godfather = sample_insectGodfather(name='other godfather')
        payload = {
            'name': 'new specie name',
            'genus': genus.id,
            'godfather': godfather.id
        }

        url = detail_specie_url(specie.id)
        res = self.client.patch(url, payload)

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

        self.assertEqual(specie.name, payload['name'])
        self.assertEqual(specie.genus.id, payload['genus'])