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)
예제 #5
0
 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)
예제 #10
0
    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)
예제 #12
0
    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)