Source code for tests.posts.test_urls

from django.test import TestCase
from django.urls import reverse
from rest_framework import status

from tests.posts.factories import PostFactory, PostMediaFactory  # type: ignore
from tests.users.factories import UserFactory  # type: ignore


[docs] class PostURLsTestCase(TestCase):
[docs] @classmethod def setUpClass(cls): super().setUpClass() cls.user = UserFactory.create() cls.post = PostFactory.create(author=cls.user) cls.media = PostMediaFactory.create(post=cls.post)
[docs] def test_post_list_url_get(self): url = reverse("posts:posts") url_string = "/api/posts/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_list_url_post(self): url = reverse("posts:posts") url_string = "/api/posts/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_detailed_post_url_get(self): url = reverse("posts:detailed-post", args=[self.post.pk]) url_string = f"/api/posts/{self.post.pk}/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_detailed_post_url_patch(self): url = reverse("posts:detailed-post", args=[self.post.pk]) url_string = f"/api/posts/{self.post.pk}/" response = self.client.patch(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_detailed_post_url_put(self): url = reverse("posts:detailed-post", args=[self.post.pk]) url_string = f"/api/posts/{self.post.pk}/" response = self.client.put(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_detailed_post_url_delete(self): url = reverse("posts:detailed-post", args=[self.post.pk]) url_string = f"/api/posts/{self.post.pk}/" response = self.client.delete(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_detailed_post_upload_media(self): url = reverse( "posts:upload", ) url_string = "/api/posts/upload/" response = self.client.post(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_media_get(self): url = reverse("posts:detailed-media", kwargs={"pk": self.media.pk}) url_string = f"/api/posts/media/{self.media.pk}/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_media_update(self): url = reverse("posts:detailed-media", kwargs={"pk": self.media.pk}) url_string = f"/api/posts/media/{self.media.pk}/" response = self.client.patch(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_media_put(self): url = reverse("posts:detailed-media", kwargs={"pk": self.media.pk}) url_string = f"/api/posts/media/{self.media.pk}/" response = self.client.put(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_media_delete(self): url = reverse("posts:detailed-media", kwargs={"pk": self.media.pk}) url_string = f"/api/posts/media/{self.media.pk}/" response = self.client.delete(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_favorite_add(self): url = reverse("posts:post-favorite", args=[self.post.pk]) url_string = f"/api/posts/{self.post.pk}/favorite/" response = self.client.post(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_favorites_list(self): url = reverse("posts:favorites-list") url_string = "/api/posts/favorites/" response = self.client.delete(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_for_you_list(self): url = reverse("posts:for-you") url_string = "/api/posts/for-you/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)
[docs] def test_post_following_list(self): url = reverse("posts:following") url_string = "/api/posts/following/" response = self.client.get(url) self.assertNotIn(response.status_code, [status.HTTP_404_NOT_FOUND, status.HTTP_405_METHOD_NOT_ALLOWED]) self.assertEqual(url, url_string)