2019-01-21 09:16:50 +00:00
|
|
|
import datetime
|
2018-02-27 21:38:55 +00:00
|
|
|
|
2019-01-21 09:16:50 +00:00
|
|
|
from funkwhale_api.instance import stats
|
2018-02-27 21:38:55 +00:00
|
|
|
|
|
|
|
|
2019-01-21 09:16:50 +00:00
|
|
|
def test_get_users(factories, now):
|
|
|
|
factories["users.User"](last_activity=now)
|
|
|
|
factories["users.User"](last_activity=now - datetime.timedelta(days=29))
|
|
|
|
factories["users.User"](last_activity=now - datetime.timedelta(days=31))
|
|
|
|
factories["users.User"](last_activity=now - datetime.timedelta(days=190))
|
|
|
|
factories["users.User"](is_active=False)
|
|
|
|
assert stats.get_users() == {"total": 4, "active_month": 2, "active_halfyear": 3}
|
2018-02-27 21:38:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_music_duration(factories):
|
2018-09-22 12:29:30 +00:00
|
|
|
factories["music.Upload"].create_batch(size=5, duration=360)
|
2018-02-27 21:38:55 +00:00
|
|
|
|
|
|
|
# duration is in hours
|
|
|
|
assert stats.get_music_duration() == 0.5
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_listenings(mocker):
|
|
|
|
mocker.patch(
|
2018-06-09 13:36:16 +00:00
|
|
|
"funkwhale_api.history.models.Listening.objects.count", return_value=42
|
|
|
|
)
|
2018-02-27 21:38:55 +00:00
|
|
|
assert stats.get_listenings() == 42
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_track_favorites(mocker):
|
|
|
|
mocker.patch(
|
2018-06-09 13:36:16 +00:00
|
|
|
"funkwhale_api.favorites.models.TrackFavorite.objects.count", return_value=42
|
|
|
|
)
|
2018-02-27 21:38:55 +00:00
|
|
|
assert stats.get_track_favorites() == 42
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_tracks(mocker):
|
2020-02-14 09:21:48 +00:00
|
|
|
mocker.patch("funkwhale_api.music.models.TrackQuerySet.count", return_value=42)
|
2018-02-27 21:38:55 +00:00
|
|
|
assert stats.get_tracks() == 42
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_albums(mocker):
|
2020-02-14 09:21:48 +00:00
|
|
|
mocker.patch("funkwhale_api.music.models.AlbumQuerySet.count", return_value=42)
|
2018-02-27 21:38:55 +00:00
|
|
|
assert stats.get_albums() == 42
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_artists(mocker):
|
2020-02-14 09:21:48 +00:00
|
|
|
mocker.patch("funkwhale_api.music.models.ArtistQuerySet.count", return_value=42)
|
2018-02-27 21:38:55 +00:00
|
|
|
assert stats.get_artists() == 42
|
|
|
|
|
|
|
|
|
|
|
|
def test_get(mocker):
|
|
|
|
keys = [
|
2018-06-09 13:36:16 +00:00
|
|
|
"users",
|
|
|
|
"tracks",
|
|
|
|
"albums",
|
|
|
|
"artists",
|
|
|
|
"track_favorites",
|
|
|
|
"listenings",
|
|
|
|
"music_duration",
|
2020-02-14 09:21:48 +00:00
|
|
|
"downloads",
|
2018-02-27 21:38:55 +00:00
|
|
|
]
|
2022-11-23 21:36:56 +00:00
|
|
|
[mocker.patch.object(stats, f"get_{k}", return_value=i) for i, k in enumerate(keys)]
|
2018-02-27 21:38:55 +00:00
|
|
|
|
2018-06-09 13:36:16 +00:00
|
|
|
expected = {k: i for i, k in enumerate(keys)}
|
2018-02-27 21:38:55 +00:00
|
|
|
|
|
|
|
assert stats.get() == expected
|