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_artists_search(self, mock_get_artist): artist1 = sample_artist(self.user, "The Doors") artist2 = sample_artist(self.user, "Haken") response = self.client.get(SEARCH_URL, { "value": "doors", "page_number": 1 }) serializer1 = ArtistSerializer(artist1) serializer2 = ArtistSerializer(artist2) self.assertIn(serializer1.data, response.data["artists"]) self.assertNotIn(serializer2.data, response.data["artists"])
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_artists_attached_to_genre(self, mock_get_artist): genre1 = sample_genre(self.user, "Rock") genre2 = sample_genre(self.user, "Progressive metal") artist1 = sample_artist(self.user, "The Doors") artist2 = sample_artist(self.user, "Haken") artist1.genres.set([genre1]) artist2.genres.set([genre2]) response = self.client.get(SEARCH_URL, { "value": "progressive", "page_number": 1 }) serializer1 = ArtistSerializer(artist1) serializer2 = ArtistSerializer(artist2) self.assertIn(serializer2.data, response.data["artists"]) self.assertNotIn(serializer1.data, response.data["artists"])
def test_retrieve_unique_artists(self, mock_get_spotify_image, mock_get_song, mock_get_video_url): artist = sample_artist(self.user) sample_song(self.user, artist, "Song1") sample_song(self.user, artist, "Song2") response = self.client.get(ARTIST_URL, {"is_assigned": 1}) self.assertEqual(len(response.data), 1)
def test_retrieve_unique_genres(self, mock_get_artist, mock_get_song, mock_get_video_url): genre = sample_genre(self.user) artist = sample_artist(self.user) song1 = sample_song(self.user, artist, "Song1") song2 = sample_song(self.user, artist, "Song2") song1.genres.set([genre]) song2.genres.set([genre]) response = self.client.get(GENRE_URL, {"is_assigned": 1}) self.assertEqual(len(response.data), 1)
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_filter_songs_by_artist( self, mock_get_song, mock_get_video_url, mock_get_artist ): artist2 = sample_artist(self.user, "Artist2") song1 = sample_song(self.user, self.artist, "Title1") song2 = sample_song(self.user, artist2, "Title2") response = self.client.get(SONG_URL, {"artist": f"{artist2.id}"}) serializer1 = SongSerializer(song1) serializer2 = SongSerializer(song2) self.assertIn(serializer2.data, response.data) self.assertNotIn(serializer1.data, response.data)
def test_songs_search(self, mock_get_artist, mock_get_song, mock_get_video_url): artist = sample_artist(self.user, "The Doors") song1 = sample_song(self.user, artist, "The End") song2 = sample_song(self.user, artist, "Light my fire") response = self.client.get(SEARCH_URL, { "value": "fire", "page_number": 1 }) serializer1 = SongSerializer(song1) serializer2 = SongSerializer(song2) self.assertIn(serializer2.data, response.data["songs"]) self.assertNotIn(serializer1.data, response.data["songs"])
def test_retrieve_genres_assigned_to_song(self, mock_get_artist, mock_get_song, mock_get_video_url): genre1 = sample_genre(self.user, "Genre1") genre2 = sample_genre(self.user, "Genre2") artist = sample_artist(self.user) song = sample_song(self.user, artist) song.genres.set([genre1]) response = self.client.get(GENRE_URL, {"is_assigned": 1}) serializer1 = GenreSerializer(genre1) serializer2 = GenreSerializer(genre2) self.assertIn(serializer1.data, response.data) self.assertNotIn(serializer2.data, response.data)
def test_songs_attached_to_genre(self, mock_get_artist, mock_get_song, mock_get_video_url): genre1 = sample_genre(self.user, "Rock") genre2 = sample_genre(self.user, "Psychodelic rock") artist = sample_artist(self.user, "The Doors") song1 = sample_song(self.user, artist, "The End") song2 = sample_song(self.user, artist, "Light my fire") song1.genres.set([genre1]) song2.genres.set([genre2]) response = self.client.get(SEARCH_URL, { "value": "psychodelic", "page_number": 1 }) serializer1 = SongSerializer(song1) serializer2 = SongSerializer(song2) self.assertIn(serializer2.data, response.data["songs"]) self.assertNotIn(serializer1.data, response.data["songs"])
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_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, mock_get_spotify_image): self.user = sample_user() self.artist = sample_artist(self.user)