Esempio n. 1
0
def test_recent_plays():
    mixer.cycle(30).blend(ScrobbleDb)
    orm.flush()
    scrobbles = list(scrobble_logic.recent_plays())
    assert len(scrobbles) == 30
    for idx, scrobble in enumerate(scrobbles):
        if idx > 0:
            assert scrobbles[idx].date < scrobbles[idx - 1].date
Esempio n. 2
0
def test_recent_plays_min_max_date():
    song = mixer.blend(SongDb)
    mixer.cycle(5).blend(ScrobbleDb, date=datetime.now(), song=song)
    mixer.cycle(5).blend(ScrobbleDb,
                         date=datetime.now() - timedelta(days=6),
                         song=song)
    orm.flush()
    scrobbles = scrobble_logic.recent_plays(min_date=datetime.now() -
                                            timedelta(days=4))
    assert len(scrobbles) == 5
Esempio n. 3
0
def test_top_plays_multiple_users():
    song1 = mixer.blend(SongDb)
    song2 = mixer.blend(SongDb)
    mixer.cycle(5).blend(ScrobbleDb, song=song1)
    mixer.cycle(3).blend(ScrobbleDb, song=song2)
    orm.flush()
    songs = scrobble_logic.most_played_songs()
    assert songs[0]["song"] == song1
    assert songs[0]["plays"] == 5
    assert songs[1]["song"] == song2
    assert songs[1]["plays"] == 3
Esempio n. 4
0
def test_top_plays_min_max_date():
    song = mixer.blend(SongDb)
    mixer.cycle(5).blend(ScrobbleDb, date=datetime.now(), song=song)
    songs = mixer.cycle(5).blend(ScrobbleDb,
                                 date=datetime.now() - timedelta(days=6),
                                 song=song)
    orm.flush()
    songs = scrobble_logic.most_played_songs()
    assert len(songs) == 1
    assert songs[0]["plays"] == 10

    songs = scrobble_logic.most_played_songs(min_date=datetime.now() -
                                             timedelta(days=1))
    orm.commit()
    assert len(songs) == 1
    assert songs[0]["plays"] == 5
Esempio n. 5
0
def test_get_song_multiple_artists():
    db_song = mixer.blend(SongDb, artists=mixer.cycle(2).blend(ArtistDb))
    artists = [a.name for a in db_song.artists]
    song = song_logic.get(title=db_song.title, artists=artists)
    assert song is not None
    assert song.title == db_song.title
    assert len(song.artists) == 2
Esempio n. 6
0
def test_song_exists_existing():
    db_song = mixer.blend(SongDb, artists=mixer.cycle(2).blend(ArtistDb))
    artists = [a.name for a in db_song.artists]
    exists = song_logic.exists(title=db_song.title, artists=artists)
    assert exists
Esempio n. 7
0
def test_get_song_multiple_artists_get_with_one():
    db_song = mixer.blend(SongDb, artists=mixer.cycle(2).blend(ArtistDb))
    artists = [a.name for a in db_song.artists]
    song = song_logic.get(title=db_song.title, artists=[artists[0]])
    assert song is None