Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from django.urls import reverse
from funkwhale_api.instance import stats
def test_can_get_stats_via_api(db, api_client, mocker):
stats = {
'foo': 'bar'
}
mocker.patch('funkwhale_api.instance.stats.get', return_value=stats)
url = reverse('api:v1:instance:stats')
response = api_client.get(url)
assert response.data == stats
def test_get_users(mocker):
mocker.patch(
'funkwhale_api.users.models.User.objects.count', return_value=42)
assert stats.get_users() == 42
def test_get_music_duration(factories):
factories['music.TrackFile'].create_batch(size=5, duration=360)
# duration is in hours
assert stats.get_music_duration() == 0.5
def test_get_listenings(mocker):
mocker.patch(
'funkwhale_api.history.models.Listening.objects.count',
return_value=42)
assert stats.get_listenings() == 42
def test_get_track_favorites(mocker):
mocker.patch(
'funkwhale_api.favorites.models.TrackFavorite.objects.count',
return_value=42)
assert stats.get_track_favorites() == 42
def test_get_tracks(mocker):
mocker.patch(
'funkwhale_api.music.models.Track.objects.count',
return_value=42)
assert stats.get_tracks() == 42
def test_get_albums(mocker):
mocker.patch(
'funkwhale_api.music.models.Album.objects.count',
return_value=42)
assert stats.get_albums() == 42
def test_get_artists(mocker):
mocker.patch(
'funkwhale_api.music.models.Artist.objects.count',
return_value=42)
assert stats.get_artists() == 42
def test_get(mocker):
keys = [
'users',
'tracks',
'albums',
'artists',
'track_favorites',
'listenings',
'music_duration',
]
mocks = [
mocker.patch.object(stats, 'get_{}'.format(k), return_value=i)
for i, k in enumerate(keys)
]
expected = {
k: i for i, k in enumerate(keys)
}
assert stats.get() == expected