Пример #1
0
    def test_create_messages_recordings(self):
        """ Test to check if the number of recordings are clipped to top 1000 """
        recordings = []
        for i in range(0, 2000):
            recordings.append({
                'artist_name': 'artist_{}'.format(i),
                'artist_mbids': [str(i)],
                'release_name': 'release_{}'.format(i),
                'release_mbid': str(i),
                'track_name': 'recording_{}'.format(i),
                'recording_mbid': str(i),
                'listen_count': i
            })

        mock_result = MagicMock()
        mock_result.asDict.return_value = {
            'user_name': "test",
            'recordings': recordings
        }

        messages = entity.create_messages([mock_result], 'recordings', 'all_time', datetime.now(), datetime.now())

        message = next(messages)
        received_list = message['data']
        expected_list = recordings[:1000]
        self.assertCountEqual(received_list, expected_list)

        received_count = message['count']
        expected_count = 2000
        self.assertEqual(received_count, expected_count)
Пример #2
0
    def test_skip_incorrect_artists_stats(self):
        """ Test to check if entries with incorrect data is skipped for top user artists """
        with open(self.path_to_data_file('user_top_artists_incorrect.json')) as f:
            data = json.load(f)

        mock_result = MagicMock()
        mock_result.asDict.return_value = {
            'user_name': "test",
            'artists': data
        }

        messages = entity.create_messages([mock_result], 'artists', 'all_time', datetime.now(), datetime.now())
        received_list = next(messages)['data']

        # Only the first entry in file is valid, all others must be skipped
        self.assertListEqual(data[:1], received_list)