Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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]
Esempio n. 5
0
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)
Esempio n. 6
0
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
Esempio n. 7
0
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
Esempio n. 8
0
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)
Esempio n. 9
0
def test_exists(factory: Factory, db: Connection):
    ety = factory.playlist_entry(conn=db)
    assert pentry.exists(ety.id, db)