def test_playlist_delete_song_is_assoc_w_playlist(self):
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, 'FAKEFAKESHOWID', 'FAKEFAKEPW')
            playlist = test_utils.make_playlist(gillard.db.session, show)
            playlist_display_id = playlist.display_id

            other_playlist = test_utils.make_playlist(gillard.db.session)
            other_playlist_display_id = other_playlist.display_id
            song = test_utils.make_song(gillard.db.session, other_playlist)
            song_id = song.id

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data=json.dumps(dict(
                    song_id= song_id,
                )),
                content_type = 'application/json'
            )

        res_json = json.loads(rv.data.decode("utf-8"))
        assert res_json['message'] == \
            "Song id {} not in playlist id {}".format(song_id, playlist_display_id)
Ejemplo n.º 2
0
 def test_200(self):
     show_display_id = 'TESTID'
     with gillard.app.app_context():
         show = test_utils.make_show(gillard.db.session, show_display_id)
         playlist = test_utils.make_playlist(gillard.db.session, show)
     rv = self.app.get('/playlists/{}'.format(show_display_id))
     assert rv.status_code == 200
    def test_playlist_add_song(self):
        show_id = 'TESTID'
        password = '******'
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/add_song'.format(playlist.display_id),
                data=json.dumps(dict(
                    artist = 'artist',
                    title = 'title',
                    album = 'album',
                    label = 'label',
                    release_date = 'release_date',
                    notes = 'notes',
                    img64px = 'img64px',
                    img300px = 'img300px',
                    played = True,
                )),
                content_type = 'application/json'
            )

        with gillard.app.app_context():
            show = gillard.db.session.query(Show).filter_by(id=1).one()
            songs = show.playlists[0].songs
            assert len(songs) == 1
Ejemplo n.º 4
0
 def test_200(self):
     show_display_id = 'TESTID'
     with gillard.app.app_context():
         show = test_utils.make_show(gillard.db.session, show_display_id)
         playlist = test_utils.make_playlist(gillard.db.session, show)
     rv = self.app.get('/playlists/{}'.format(show_display_id))
     assert rv.status_code == 200
Ejemplo n.º 5
0
    def test_playlist_exists(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            assert rv.status_code == 200
Ejemplo n.º 6
0
    def test_playlist_mode_readonly_in_session(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            assert session['playlist_mode'] == 'readonly'
Ejemplo n.º 7
0
    def test_playlist_exists(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            assert rv.status_code == 200
Ejemplo n.º 8
0
    def test_playlist_mode_readonly_in_session(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            assert session['playlist_mode'] == 'readonly'
    def test_playlist_delete_song(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            song = test_utils.make_song(gillard.db.session, playlist)
            song_id = song.id

        with gillard.app.app_context():
            playlist = gillard.db.session.query(Playlist).filter_by(id=1).one()
            songs = playlist.songs
            assert len(songs) == 1

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data=json.dumps(dict(
                    song_id= song_id,
                )),
                content_type = 'application/json'
            )

        with gillard.app.app_context():
            playlist = gillard.db.session.query(Playlist).filter_by(id=1).one()
            songs = playlist.songs
            assert len(songs) == 0
Ejemplo n.º 10
0
    def test_playlist_json_has_display_id(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            res_json = json.loads(rv.data.decode("utf-8"))
            assert res_json['display_id'] == playlist.display_id
Ejemplo n.º 11
0
    def test_playlist_json_has_display_id(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist.display_id))
            res_json = json.loads(rv.data.decode("utf-8"))
            assert res_json['display_id'] == playlist.display_id
Ejemplo n.º 12
0
 def test_has_show(self):
     show_display_id = 'TESTID'
     with gillard.app.app_context():
         show = test_utils.make_show(gillard.db.session, show_display_id)
         playlist = test_utils.make_playlist(gillard.db.session, show)
     rv = self.app.get('/playlists/{}'.format(show_display_id))
     res_json = json.loads(rv.data.decode("utf-8"))
     assert len(res_json['playlists']) == 1
Ejemplo n.º 13
0
 def test_has_show(self):
     show_display_id = 'TESTID'
     with gillard.app.app_context():
         show = test_utils.make_show(gillard.db.session, show_display_id)
         playlist = test_utils.make_playlist(gillard.db.session, show)
     rv = self.app.get('/playlists/{}'.format(show_display_id))
     res_json = json.loads(rv.data.decode("utf-8"))
     assert len(res_json['playlists']) == 1
Ejemplo n.º 14
0
    def test_playlist_json_has_song(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            test_utils.make_song(gillard.db.session, playlist)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist_display_id))
            res_json = json.loads(rv.data.decode("utf-8"))
            assert len(res_json['songs']) == 1
Ejemplo n.º 15
0
    def test_playlist_json_has_song(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            test_utils.make_song(gillard.db.session, playlist)

        with self.app as app:
            rv = app.get('/playlist/{}'.format(playlist_display_id))
            res_json = json.loads(rv.data.decode("utf-8"))
            assert len(res_json['songs']) == 1
Ejemplo n.º 16
0
    def test_playlist_mode_edit_in_session(self):
        show_id = 'TESTID'
        password = '******'
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            formatted_url = '/playlist/{}?show_id={}&password={}'.\
                format(playlist.display_id, show_id, password)
            rv = app.get(formatted_url)
            assert session['playlist_mode'] == 'edit'
Ejemplo n.º 17
0
    def test_playlist_mode_edit_in_session(self):
        show_id = 'TESTID'
        password = '******'
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            formatted_url = '/playlist/{}?show_id={}&password={}'.\
                format(playlist.display_id, show_id, password)
            rv = app.get(formatted_url)
            assert session['playlist_mode'] == 'edit'
Ejemplo n.º 18
0
    def test_playlist_mode_edit_associates_to_right_playlist_show_link(self):
        bad_show_id = 'BADID'
        bad_password = '******'

        show_id = 'TESTID'
        password = '******'

        with gillard.app.app_context():
            bad_show = test_utils.make_show(gillard.db.session, bad_show_id, bad_password)
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            formatted_url = '/playlist/{}?show_id={}&password={}'.\
                format(playlist.display_id, bad_show_id, bad_password)
            rv = app.get(formatted_url)
            assert session['playlist_mode'] == 'readonly'
Ejemplo n.º 19
0
    def test_playlist_mode_edit_associates_to_right_playlist_show_link(self):
        bad_show_id = 'BADID'
        bad_password = '******'

        show_id = 'TESTID'
        password = '******'

        with gillard.app.app_context():
            bad_show = test_utils.make_show(gillard.db.session, bad_show_id,
                                            bad_password)
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            formatted_url = '/playlist/{}?show_id={}&password={}'.\
                format(playlist.display_id, bad_show_id, bad_password)
            rv = app.get(formatted_url)
            assert session['playlist_mode'] == 'readonly'
    def test_playlist_delete_invalid_json(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            song = test_utils.make_song(gillard.db.session, playlist)
            song_id = song.id

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data='invalid_json{}',
                content_type = 'application/json'
            )

        res_json = json.loads(rv.data.decode("utf-8"))
        assert res_json['message'] == "Invalid JSON"
    def test_playlist_add_song_readonly_mode(self):
        show_id = 'TESTID'
        password = '******'
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'readonly'

            rv = app.post(
                '/playlist/{}/add_song'.format(playlist.display_id),
                data='not json{}',
                content_type = 'application/json'
            )

        res_json = json.loads(rv.data.decode("utf-8"))
        assert res_json['message'] == "Can't add songs in readonly mode"
    def test_playlist_delete_song_response(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            song = test_utils.make_song(gillard.db.session, playlist)
            song_id = song.id

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data=json.dumps(dict(
                    song_id= song_id,
                )),
                content_type = 'application/json'
            )

        assert rv.status_code == 200
    def test_playlist_delete_song_readonly_mode(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            song = test_utils.make_song(gillard.db.session, playlist)
            song_id = song.id

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'readonly'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data=json.dumps(dict(
                    song_id= song_id,
                )),
                content_type = 'application/json'
            )

        res_json = json.loads(rv.data.decode("utf-8"))
        assert res_json['message'] == "Can't delete songs in readonly mode"
    def test_playlist_not_exists_message(self):
        with gillard.app.app_context():
            playlist = test_utils.make_playlist(gillard.db.session)
            playlist_display_id = playlist.display_id
            song = test_utils.make_song(gillard.db.session, playlist)
            song_id = song.id

        playlist_display_id = 'FAKEID'

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post(
                '/playlist/{}/delete_song'.format(playlist_display_id),
                data=json.dumps(dict(
                    song_id= song_id,
                )),
                content_type = 'application/json'
            )

        res_json = json.loads(rv.data.decode("utf-8"))
        assert res_json['message'] == 'No playlist found for id: FAKEID'
    def test_playlist_add_song_response(self):
        show_id = 'TESTID'
        password = '******'
        with gillard.app.app_context():
            show = test_utils.make_show(gillard.db.session, show_id, password)
            playlist = test_utils.make_playlist(gillard.db.session, show)

        with self.app as app:
            with app.session_transaction() as sess:
                sess['playlist_mode'] = 'edit'

            rv = app.post('/playlist/{}/add_song'.format(playlist.display_id), data=json.dumps(dict(
                artist = 'artist',
                title = 'title',
                album = 'album',
                label = 'label',
                release_date = 'release_date',
                notes = 'notes',
                img64px = 'img64px',
                img300px = 'img300px',
                played = True,
            )), content_type = 'application/json')

        assert rv.status_code == 200