def test_update( position: int, final_order: list[int], factory: Factory, db: Connection, ): ply = factory.playlist(conn=db) entries = [factory.playlist_entry(playlist_id=ply.id, conn=db) for _ in range(5)] ety = pentry.update(entries[2], position=position, conn=db) assert ety.position == position cursor = db.execute( """ SELECT id FROM music__playlists_tracks WHERE playlist_id = ? ORDER BY position ASC """, (ply.id,), ) order = [row["id"] for row in cursor] expected = [entries[i].track_id for i in final_order] assert order == expected
def test_delete(factory: Factory, db: Connection): ply = factory.playlist(conn=db) entries = [factory.playlist_entry(playlist_id=ply.id, conn=db) for _ in range(5)] pentry.delete(entries[2], db) new_entries = playlist.entries(ply, db) assert entries[2].id not in {e.id for e in new_entries} for i, ety in enumerate(entries[:2] + entries[3:], start=1): new_ety = pentry.from_id(ety.id, db) assert new_ety is not None assert new_ety.position == i
def test_from_id_success(factory: Factory, db: Connection): ety = factory.playlist_entry(conn=db) new_ety = pentry.from_id(1, db) assert new_ety == ety
def test_from_playlist_and_track_success(factory: Factory, db: Connection): ety = factory.playlist_entry(conn=db) new_ety = pentry.from_playlist_and_track(ety.playlist_id, ety.track_id, db) assert new_ety == [ety]
def test_exists_playlist_and_track(factory: Factory, db: Connection): ety = factory.playlist_entry(conn=db) assert pentry.exists_playlist_and_track(ety.playlist_id, ety.track_id, db)
def test_track(factory: Factory, db: Connection): trk = factory.track(conn=db) ety = factory.playlist_entry(track_id=trk.id, conn=db) assert pentry.track(ety, db).id == trk.id
def test_playlist(factory: Factory, db: Connection): ply = factory.playlist(conn=db) ety = factory.playlist_entry(playlist_id=ply.id, conn=db) assert pentry.playlist(ety, db).id == ply.id
def test_update_out_of_bounds(position: int, factory: Factory, db: Connection): ply = factory.playlist(conn=db) entries = [factory.playlist_entry(playlist_id=ply.id, conn=db) for _ in range(5)] with pytest.raises(IndexError): pentry.update(entries[2], position=position, conn=db)
def test_exists(factory: Factory, db: Connection): ety = factory.playlist_entry(conn=db) assert pentry.exists(ety.id, db)