예제 #1
0
    def test_search_playlist_by_name(self):
        factories.PlaylistFactory(name="Funkadelic",
                                  owner=self.user,
                                  public_id="funkid")
        factories.PlaylistFactory(name="Rockabilly",
                                  owner=self.user,
                                  public_id="rockid")

        response_funk = self.client.get(reverse("api:v1:playlist-list"),
                                        data={"name": "Funk"})
        playlists_funk = response_funk.json()

        self.assertEqual(1, len(playlists_funk))
        self.assertEqual("funkid", playlists_funk[0]["id"])
예제 #2
0
    def test_search_playlist_by_name(self):
        factories.PlaylistFactory(name="Funkadelic",
                                  owner=self.user,
                                  public_id="funkid")
        factories.PlaylistFactory(name="Rockabilly",
                                  owner=self.user,
                                  public_id="rockid")

        response_funk = self.client.get(reverse('api:v1:playlist-list'),
                                        data={'name': 'Funk'})
        playlists_funk = response_funk.json()

        self.assertEqual(1, len(playlists_funk))
        self.assertEqual('funkid', playlists_funk[0]['id'])
예제 #3
0
    def test_create_videouploadurl_with_playlist(self):
        playlist = factories.PlaylistFactory(owner=self.user)
        response = self.client.post(reverse("api:v1:videouploadurl-list"),
                                    {"playlist": playlist.public_id})

        self.assertEqual(201, response.status_code)
        self.assertEqual(playlist,
                         models.VideoUploadUrl.objects.get().playlist)
예제 #4
0
    def test_insert_non_existing_video_in_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)

        response = self.client.post(reverse("api:v1:playlist-add-video",
                                            kwargs={'id': playlist.public_id}),
                                    data={"id": 'videoid'})

        self.assertEqual(404, response.status_code)
예제 #5
0
    def test_obtain_video_upload_url_with_unauthorized_playlist_id(self):
        # Create factory from different owner
        playlist = factories.PlaylistFactory()

        response = self.client.post(reverse("api:v1:videouploadurl-list"),
                                    {"playlist": playlist.public_id})

        self.assertNotEqual(self.user, playlist.owner)
        self.assertEqual(400, response.status_code)
예제 #6
0
    def test_get_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        response = self.client.get(
            reverse("api:v1:playlist-detail",
                    kwargs={"id": playlist.public_id}))
        result = response.json()

        self.assertEqual(200, response.status_code)
        self.assertEqual("Funkadelic playlist", result["name"])
        self.assertEqual(playlist.public_id, result["id"])
예제 #7
0
    def test_remove_video_from_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        video = factories.VideoFactory(public_id="videoid", owner=self.user)
        playlist.videos.add(video)

        response = self.client.post(reverse("api:v1:playlist-remove-video",
                                            kwargs={'id': playlist.public_id}),
                                    data={"id": 'videoid'})

        self.assertEqual(204, response.status_code)
예제 #8
0
    def test_insert_video_from_different_user_in_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        different_user = factories.UserFactory()
        factories.VideoFactory(public_id="videoid", owner=different_user)

        response = self.client.post(reverse("api:v1:playlist-add-video",
                                            kwargs={'id': playlist.public_id}),
                                    data={"id": 'videoid'})

        self.assertEqual(404, response.status_code)
예제 #9
0
    def test_insert_video_in_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        factories.VideoFactory(public_id="videoid", owner=self.user)

        response = self.client.post(
            reverse("api:v1:playlist-add-video",
                    kwargs={"id": playlist.public_id}),
            data={"id": "videoid"},
        )

        self.assertEqual(204, response.status_code)
        self.assertEqual(1, playlist.videos.count())
예제 #10
0
    def test_list_videos_in_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        video_in_playlist = factories.VideoFactory(owner=self.user)
        _video_not_in_playlist = factories.VideoFactory(owner=self.user)
        playlist.videos.add(video_in_playlist)

        response = self.client.get(reverse('api:v1:video-list'),
                                   data={'playlist_id': playlist.public_id})
        videos = response.json()

        self.assertEqual(1, len(videos))
        self.assertEqual(video_in_playlist.public_id, videos[0]["id"])
예제 #11
0
    def test_list_videos_in_playlist(self):
        playlist = factories.PlaylistFactory(name="Funkadelic playlist",
                                             owner=self.user)
        # Create a video attached to a playlist
        video_in_playlist = factories.VideoFactory(owner=self.user)
        playlist.videos.add(video_in_playlist)
        # Create a video not attached to a playlist
        factories.VideoFactory(owner=self.user)

        response = self.client.get(reverse("api:v1:video-list"),
                                   data={"playlist_id": playlist.public_id})
        videos = response.json()

        self.assertEqual(1, len(videos))
        self.assertEqual(video_in_playlist.public_id, videos[0]["id"])