def test_get_instance_genre_for_user(self): url = f'/api/library/genres/{self.genre.id}/' self.client.force_login(self.user, None) response = self.client.get(path=url, format='json') genre = models.Genre.objects.get(id=self.genre.id) serializer = serializers.LanguageSerializer(instance=genre) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_get_instance_language_for_admin(self): url = f'/api/library/languages/{self.language_rus.id}/' self.client.force_login(self.admin, None) response = self.client.get(path=url, format='json') languages = models.Language.objects.get(id=self.language_rus.id) serializer = serializers.LanguageSerializer(instance=languages) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, serializer.data)
def test_create_language_for_user(self): url = f'/api/library/genres/' self.client.force_login(self.user, None) data = {'name': 'Повесть'} serializer = serializers.LanguageSerializer(data=data) serializer.is_valid(raise_exception=True) response = self.client.post(path=url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_get_list_languages_for_admin(self): url = '/api/library/languages/' self.client.force_login(self.admin, None) response = self.client.get(path=url, format='json') languages = models.Language.objects.all() serializer = serializers.LanguageSerializer(instance=languages, many=True) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, serializer.data)
def test_create_language_for_admin(self): url = f'/api/library/languages/' self.client.force_login(self.admin, None) data = {'name': 'Испанский'} serializer = serializers.LanguageSerializer(data=data) serializer.is_valid(raise_exception=True) response = self.client.post(path=url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(models.Language.objects.count(), 3)
def test_update_language_for_admin(self): url = f'/api/library/languages/{self.language_rus.id}/' self.client.force_login(self.admin, None) data = {'name': 'Немецкий'} serializer = serializers.LanguageSerializer(data=data) serializer.is_valid(raise_exception=True) response = self.client.put(path=url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) language = models.Language.objects.get(id=self.language_rus.id) self.assertEqual(self.language_rus.id, language.id) self.assertEqual(data.get('name'), language.name)