Пример #1
0
    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
            },
        ]
Пример #2
0
    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
            },
        ]
Пример #3
0
    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
            },
        ]
Пример #4
0
    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
            },
        ]
Пример #5
0
    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
            },
        ]
Пример #6
0
    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
            },
        ]
Пример #7
0
    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
            },
        ]
Пример #8
0
    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
            },
        ]
Пример #9
0
    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
            },
        ]
Пример #10
0
    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
            },
        ]
Пример #11
0
    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
Пример #12
0
    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
Пример #13
0
    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
Пример #14
0
    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']
Пример #15
0
    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
Пример #16
0
    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