def should_return_most_played_djs_from_the_beginning_of_the_age(self): most_played = UserFactory() second_most_played = UserFactory() entries = [ PlaylistHistoryFactory(user=most_played), PlaylistHistoryFactory(user=most_played), PlaylistHistoryFactory(user=second_most_played), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats') response = self.client.get(url) assert response.status_code == 200 assert response.json['most_active_djs'] == [ { 'user': UserSerializer().serialize(most_played), 'total': 2 }, { 'user': UserSerializer().serialize(second_most_played), 'total': 1 }, ]
def should_return_user_played_time_from_selected_date(self): most_played = UserFactory() second_most_played = UserFactory() entries = [ PlaylistHistoryFactory(user=most_played, track=TrackFactory(duration=1000)), PlaylistHistoryFactory(user=most_played, created=datetime.datetime(2014, 1, 1, tzinfo=tzutc()), track=TrackFactory(duration=500)), PlaylistHistoryFactory(user=second_most_played, track=TrackFactory(duration=700)), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{'from': '2015-06-01'}) response = self.client.get(url) assert response.status_code == 200 assert response.json['total_play_time_per_user'] == [ { 'user': UserSerializer().serialize(most_played), 'total': 1000 }, { 'user': UserSerializer().serialize(second_most_played), 'total': 700 }, ]
def should_return_most_played_djs_in_selected_time_window(self): most_played = UserFactory() entries = [ PlaylistHistoryFactory(user=most_played, created=datetime.datetime(2015, 5, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 7, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 3, 1, tzinfo=tzutc())), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{ 'to': '2015-06-01', 'from': '2015-04-01' }) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_active_djs'] == [ { 'user': UserSerializer().serialize(most_played), 'total': 1 }, ]
def should_return_most_played_genre_in_selected_window(self): most_played = GenreFactory() entries = [ PlaylistHistoryFactory( created=datetime.datetime(2015, 3, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 7, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 5, 1, tzinfo=tzutc()), track=TrackFactory(album=AlbumWithArtist( artists=[ArtistFactory(genres=[most_played])]))), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{ 'to': '2015-06-01', 'from': '2015-04-01' }) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_genres'] == [ { 'name': most_played.name, 'total': 1 }, ]
def should_return_user_played_time_from_the_beginning_of_the_age(self): most_played = UserFactory() second_most_played = UserFactory() entries = [ PlaylistHistoryFactory(user=most_played, track=TrackFactory(duration=1000)), PlaylistHistoryFactory(user=most_played, track=TrackFactory(duration=500)), PlaylistHistoryFactory(user=second_most_played, track=TrackFactory(duration=700)), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats') response = self.client.get(url) assert response.status_code == 200 assert response.json['total_play_time_per_user'] == [ { 'user': UserSerializer().serialize(most_played), 'total': 1500 }, { 'user': UserSerializer().serialize(second_most_played), 'total': 700 }, ]
def should_return_played_tracs_from_selected_date(self): most_played = TrackFactory() second_most_played = TrackFactory() entries = [ PlaylistHistoryFactory(track=most_played), PlaylistHistoryFactory(track=most_played), PlaylistHistoryFactory(track=second_most_played), PlaylistHistoryFactory(track=second_most_played, created=datetime.datetime(2014, 1, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2014, 1, 1, tzinfo=tzutc())), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{'from': '2015-06-01'}) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_tracks'] == [ { 'track': TrackSerializer().serialize(most_played), 'total': 2 }, { 'track': TrackSerializer().serialize(second_most_played), 'total': 1 }, ]
def should_return_most_played_genre_from_the_beginning_of_the_age(self): most_played = GenreFactory() second_most_played = GenreFactory() entries = [ PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[ArtistFactory(genres=[most_played])]))), PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[ ArtistFactory(genres=[second_most_played, most_played]) ]))), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats') response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_genres'] == [ { 'name': most_played.name, 'total': 2 }, { 'name': second_most_played.name, 'total': 1 }, ]
def should_return_most_played_artist_from_selected_date(self): user = UserFactory() most_played = ArtistFactory() second_most_played = ArtistFactory() entries = [ user, PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[most_played])), user=user), PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[second_most_played]))), PlaylistHistoryFactory( created=datetime.datetime(2014, 1, 1, tzinfo=tzutc()), track=TrackFactory(album=AlbumWithArtist( artists=[second_most_played, most_played])), user=user), ] db.session.add_all(entries) db.session.commit() url = url_for('users.stats', pk=user.id, **{'from': '2015-06-01'}) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_artists'] == [ { 'artist': ArtistSerializer().serialize(most_played), 'total': 1 }, ]
def should_return_played_tracks_from_the_beginning_of_the_age(self): user = UserFactory() most_played = TrackFactory() second_most_played = TrackFactory() entries = [ user, PlaylistHistoryFactory(track=most_played, user=user), PlaylistHistoryFactory(track=most_played, user=user), PlaylistHistoryFactory(track=second_most_played, user=user), PlaylistHistoryFactory(track=second_most_played), ] db.session.add_all(entries) db.session.commit() url = url_for('users.stats', pk=user.id) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_tracks'] == [ { 'track': FMTrackSerializer().serialize(most_played), 'total': 2 }, { 'track': FMTrackSerializer().serialize(second_most_played), 'total': 1 }, ]
def should_return_most_played_artist_from_the_beginning_of_the_age(self): user = UserFactory() most_played = ArtistFactory() second_most_played = ArtistFactory() entries = [ user, PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[most_played])), user=user), PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[second_most_played, most_played])), user=user), PlaylistHistoryFactory(track=TrackFactory(album=AlbumWithArtist( artists=[second_most_played]))), ] db.session.add_all(entries) db.session.commit() url = url_for('users.stats', pk=user.id) response = self.client.get(url) assert response.status_code == 200 assert response.json['most_played_artists'] == [ { 'artist': ArtistSerializer().serialize(most_played), 'total': 2 }, { 'artist': ArtistSerializer().serialize(second_most_played), 'total': 1 }, ]
def should_return_total_plays_from_the_beginning_of_the_age(self): entries = [ PlaylistHistoryFactory(), PlaylistHistoryFactory(), PlaylistHistoryFactory() ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats') response = self.client.get(url) assert response.status_code == 200 assert response.json['total_plays'] == 3
def should_return_total_played_time_from_the_beginning_of_the_age(self): entries = [ PlaylistHistoryFactory(track=TrackFactory(duration=1000)), PlaylistHistoryFactory(track=TrackFactory(duration=500)), PlaylistHistoryFactory(track=TrackFactory(duration=700)), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats') response = self.client.get(url) assert response.status_code == 200 assert response.json['total_play_time'] == 2200
def should_return_total_plays_from_selected_date(self): entries = [ PlaylistHistoryFactory(), PlaylistHistoryFactory(), PlaylistHistoryFactory(created=datetime.datetime(2014, 1, 1, tzinfo=tzutc()), ) ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{'from': '2015-06-01'}) response = self.client.get(url) assert response.status_code == 200 assert response.json['total_plays'] == 2
def should_return_latest_entries(self): entries = [ PlaylistHistoryFactory( created=datetime.datetime(2015, 12, 12, 15, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 12, 12, 15, 12, tzinfo=tzutc())), ] db.session.add_all(entries) db.session.commit() url = url_for('player.history') response = self.client.get(url) assert response.status_code == 200 assert len(response.json) == 2 assert entries[0].track.id == response.json[1]['track']['id'] assert entries[1].track.id == response.json[0]['track']['id']
def should_return_total_played_time_in_selected_time_window(self): entries = [ PlaylistHistoryFactory(track=TrackFactory(duration=1000), created=datetime.datetime(2015, 5, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 7, 1, tzinfo=tzutc())), PlaylistHistoryFactory( created=datetime.datetime(2015, 3, 1, tzinfo=tzutc())), ] db.session.add_all(entries) db.session.commit() url = url_for('player.stats', **{ 'to': '2015-06-01', 'from': '2015-04-01' }) response = self.client.get(url) assert response.status_code == 200 assert response.json['total_play_time'] == 1000
def should_return_played_time_from_selected_date(self): user = UserFactory() entries = [ user, PlaylistHistoryFactory(user=user, track=TrackFactory(duration=1000)), PlaylistHistoryFactory(user=user, created=datetime.datetime(2014, 1, 1, tzinfo=tzutc()), track=TrackFactory(duration=500)), PlaylistHistoryFactory(user=user, track=TrackFactory(duration=700)), PlaylistHistoryFactory(track=TrackFactory(duration=700)), ] db.session.add_all(entries) db.session.commit() url = url_for('users.stats', pk=user.id, **{'from': '2015-06-01'}) response = self.client.get(url) assert response.status_code == 200 assert response.json['total_play_time'] == 1700