def test_list_families(self): """Test listing families""" sample_insectFamily() sample_insectFamily(name='test 2') res = self.client.get(FAMILY_URL) families = models.InsectFamilies.objects.all().order_by('id') serializer = serializers.InsectFamiliesSerializer(families, many=True) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_create_sub_family_no_name_fail(self): """Test creating a sub family without name should fail""" family = sample_insectFamily() payload = {'name': '', 'family': family.id} res = self.client.post(SUBFAMILY_URL, payload) self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST)
def test_sub_family_admin_required(self): """Test admin is required""" family = sample_insectFamily() payload = {'name': 'sub family test name', 'family': family.id} res = self.client.post(SUBFAMILY_URL, payload) self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
def test_create_sub_family(self): """Test creating a sub family""" family = sample_insectFamily() payload = {'name': 'family test name', 'family': family.id} res = self.client.post(SUBFAMILY_URL, payload) self.assertEqual(res.status_code, status.HTTP_201_CREATED) subFamily = models.InsectSubFamilies.objects.get(id=res.data['id']) self.assertEqual(subFamily.name, payload['name']) self.assertEqual(subFamily.family.id, payload['family'])
def test_retrieve_family(self): """Test retrieving a family""" family = sample_insectFamily() url = detail_family_url(family.id) res = self.client.get(url) serializer = serializers.InsectFamiliesSerializer(family) self.assertEqual(res.status_code, status.HTTP_200_OK) self.assertEqual(res.data, serializer.data)
def test_update_sub_family(self): """Test updating sub family""" subFamily = sample_insectSubFamily() family = sample_insectFamily(name='other family') payload = {'name': 'new sub family name', 'family': family.id} url = detail_sub_family_url(subFamily.id) res = self.client.patch(url, payload) self.assertEqual(res.status_code, status.HTTP_200_OK) subFamily.refresh_from_db() self.assertEqual(subFamily.name, payload['name']) self.assertEqual(subFamily.family.id, payload['family'])