def test_create_token_missing_fields(self): payload = {"username": "******", "password": ""} sample_user("Test username", "*****@*****.**", "testpass123") response = self.client.post(TOKEN_URL, payload) self.assertNotIn("token", response.data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_token_success(self): payload = { "username": "******", "email": "*****@*****.**", "password": "******", } sample_user(**payload) response = self.client.post(TOKEN_URL, payload) self.assertIn("token", response.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_create_token_invalid_credentials(self): payload = { "username": "******", "email": "*****@*****.**", "password": "******", } sample_user("Test username", "*****@*****.**", "incorrectpass") response = self.client.post(TOKEN_URL, payload) self.assertNotIn("token", response.data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_user_exists(self): payload = { "username": "******", "password": "******", "email": "*****@*****.**", } sample_user(**payload) response = self.client.post(USER_URL, payload) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) user = get_user_model().objects.get(username=payload["username"]) self.assertTrue(user)
def setUp(self, mock_get_artist, mock_get_song, mock_get_video_url): self.client = APIClient() self.user = sample_user() self.client.force_authenticate(self.user) self.artist = sample_artist(self.user) self.song = sample_song(self.user, self.artist) self.comment = sample_comment(self.user, self.song)
def test_update_other_user_not_allowed(self): user2 = sample_user("user2", "pass123") response = self.client.patch(get_user_detail_url(user2.id), {"username": "******"}) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_incorrect_number_of_likes(self): user2 = sample_user("user2", "pass123") comment = sample_comment(self.user, self.song) sample_comment_like(self.user, comment) sample_comment_like(user2, comment) self.assertNotEqual(comment.no_of_likes(), 1)
def test_delete_other_user_not_allowed(self, mock_get_song, mock_get_video_url): creator_user = sample_user("creator", "pass123") song = sample_song(creator_user, self.artist) response = self.client.delete(get_song_detail_url(song.id)) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_update_other_user_not_allowed(self): creator_user = sample_user("creator", "pass123") genre = sample_genre(creator_user) response = self.client.patch(get_genre_detail_url(genre.id), {"name": "updated genre"}) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_retrieve_artists_success(self, mock_get_spotify_image): user = sample_user() sample_artist(user, "Artist1") sample_artist(user, "Artist2") response = self.client.get(ARTIST_URL) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2)
def test_user_assigned_automatically_put_method( self, mock_get_song, mock_get_video_url ): user2 = sample_user("user2", "pass123") song = sample_song(user2, self.artist) payload = {"title": "Updated title", "artist": self.artist.id} response = self.client.put(get_song_detail_url(song.id), payload) self.assertEqual(response.data["edited_by_user"], self.user.id)
def test_update_other_user_not_allowed(self, mock_get_spotify_image): owner_user = sample_user(username="******") artist = sample_artist(owner_user) payload = { "name": "editedname", } response = self.client.patch(get_artist_url_detail(artist.id), payload) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_retrieve_genres_success(self): user = sample_user() sample_genre(user, "Genre1") sample_genre(user, "Genre2") response = self.client.get(GENRE_URL) genres = Genre.objects.all() serializer = GenreSerializer(genres, many=True) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, serializer.data)
def test_update_other_user_success(self, mock_get_song, mock_get_video_url): creator_user = sample_user("creator", "pass123") song = sample_song(creator_user, self.artist) response = self.client.patch( get_song_detail_url(song.id), {"title": "brand new title"} ) song.refresh_from_db() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["title"], song.title) self.assertTrue(song.edited) self.assertNotEqual(song.edited_at_time, song.created_at_time) self.assertEqual(song.edited_by_user, self.user)
def setUp(self): self.user = sample_user() self.client = APIClient()
def setUp(self): self.user = sample_user() self.genre = sample_genre(self.user)
def setUp(self, mock_get_artist, mock_get_song, mock_get_video_url): self.user = sample_user() self.artist = sample_artist(self.user) self.song = sample_song(self.user, self.artist) self.comment = sample_comment(self.user, self.song)
def setUp(self, mock_get_spotify_image): self.user = sample_user() self.artist = sample_artist(self.user)
def setUp(self, mock_get_artist): self.user = sample_user() self.client = APIClient() self.client.force_authenticate(self.user) self.artist = sample_artist(self.user)
def setUp(self, mock_get_artist): self.client = APIClient() self.user = sample_user() self.artist = sample_artist(self.user)
def setUp(self): self.user = sample_user() self.client = APIClient() self.client.force_authenticate(user=self.user)