def test_list_tribe(self): """Test listing tribes""" sample_insectTribe() sample_insectTribe(name='test 2') res = self.client.get(TRIBE_URL) tribes = models.InsectTribes.objects.all().order_by('id') serializer = serializers.InsectTribesSerializer(tribes, many=True) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_create_genus_no_name_fail(self): """Test creating a genus without name should fail""" tribe = sample_insectTribe() payload = {'name': '', 'tribe': tribe.id} res = self.client.post(GENUS_URL, payload) self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
def test_genus_admin_required(self): """Test admin is required""" tribe = sample_insectTribe() payload = {'name': 'genus test name', 'tribe': tribe.id} res = self.client.post(GENUS_URL, payload) self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
def test_create_genus(self): """Test creating a genus""" tribe = sample_insectTribe() payload = {'name': 'genus test name', 'tribe': tribe.id} res = self.client.post(GENUS_URL, payload) self.assertEqual(res.status_code, status.HTTP_201_CREATED) genus = models.InsectGenera.objects.get(id=res.data['id']) self.assertEqual(genus.name, payload['name']) self.assertEqual(genus.tribe.id, payload['tribe'])
def test_retrieve_tribe(self): """Test retrieving a tribe""" tribe = sample_insectTribe() url = detail_tribe_url(tribe.id) res = self.client.get(url) serializer = serializers.InsectTribesSerializer(tribe) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
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'])
def test_update_tribe(self): """Test updating tribe""" tribe = sample_insectTribe() subFamily = sample_insectSubFamily(name='other sub family') payload = {'name': 'new tribe name', 'subFamily': subFamily.id} url = detail_tribe_url(tribe.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) tribe.refresh_from_db() self.assertEqual(tribe.name, payload['name']) self.assertEqual(tribe.subFamily.id, payload['subFamily'])