Created
July 9, 2019 08:37
-
-
Save vansika/724325e8d0ef094ce9d3abb907893039 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def test_get_listens(self): | |
""" Test to make sure that the api sends valid listens on get requests. | |
""" | |
with open(self.path_to_data_file('valid_single.json'), 'r') as f: | |
payload = json.load(f) | |
# send a listen | |
ts = int(time.time()) | |
payload['payload'][0]['listened_at'] = ts | |
response = self.send_data(payload) | |
self.assert200(response) | |
self.assertEqual(response.json['status'], 'ok') | |
# This sleep allows for the influx subscriber to take its time in getting | |
# the listen submitted from redis and writing it to influx. | |
# Removing it causes an empty list of listens to be returned. | |
time.sleep(2) | |
url = url_for('api_v1.get_listens', user_name = self.user['musicbrainz_id']) | |
response = self.client.get(url, query_string = {'count': '1'}) | |
self.assert200(response) | |
data = json.loads(response.data)['payload'] | |
# make sure user id is correct | |
self.assertEqual(data['user_id'], self.user['musicbrainz_id']) | |
# make sure that count is 1 and list also contains 1 listen | |
self.assertEqual(data['count'], 1) | |
self.assertEqual(len(data['listens']), 1) | |
# make sure timestamp is the same as sent | |
sent_time = payload['payload'][0]['listened_at'] | |
self.assertEqual(data['listens'][0]['listened_at'], sent_time) | |
self.assertEqual(data['listens'][0]['track_metadata']['track_name'], 'Fade') | |
self.assertEqual(data['listens'][0]['track_metadata']['artist_name'], 'Kanye West') | |
self.assertEqual(data['listens'][0]['track_metadata']['release_name'], 'The Life of Pablo') | |
# make sure that artist msid, release msid and recording msid are present in data | |
self.assertTrue(is_valid_uuid(data['listens'][0]['recording_msid'])) | |
self.assertTrue(is_valid_uuid(data['listens'][0]['track_metadata']['additional_info']['artist_msid'])) | |
self.assertTrue(is_valid_uuid(data['listens'][0]['track_metadata']['additional_info']['release_msid'])) | |
# check for latest listen timestamp | |
self.assertEqual(data['latest_listen_ts'], ts) | |
# request with min_ts should work | |
response = self.client.get(url, query_string = {'min_ts': int(time.time())}) | |
self.assert200(response) | |
# request with max_ts lesser than the timestamp of the submitted listen | |
# should not send back any listens, should report a good latest_listen timestamp | |
response = self.client.get(url, query_string = {'max_ts': ts - 2}) | |
self.assert200(response) | |
> self.assertListEqual(response.json['payload']['listens'], []) | |
E AssertionError: Lists differ: [{'listened_at': 1562659711, 'recording_ms[1167 chars]re'}] != [] | |
E | |
E First list contains 1 additional elements. | |
E First extra element 0: | |
E {'listened_at': 1562659711, 'recording_msid': 'a139b211-a476-4614-9565-3ecfc95bcb0f', 'track_metadata': {'additional_info': {'artist_mbids': ['abaa7001-0d80-4e58-be5d-d2d246fd9d87', '7babc9be-ca2b-4544-b932-7c9ab38770d6'], 'artist_msid': '2c7c4b54-c2d2-404d-b458-b7d5920c3869', 'best_song': 'definitely', 'isrc': 'isrc', 'link1': 'https://genius.com/Majid-jordan-every-step-every-way-lyrics', 'link2': 'https://www.last.fm/music/Majid+Jordan/_/Every+Step+Every+Way', 'nested.info': 'here', 'non_official_list': ['hi', 'hello'], 'other_stuff': 'teststuffplsignore', 'recording_mbid': None, 'recording_msid': 'a139b211-a476-4614-9565-3ecfc95bcb0f', 'release_group_mbid': 'c2f7be65-056f-4589-ba84-3ad8cb674628', 'release_mbid': None, 'release_msid': '3a4826d1-2114-4d36-96ae-f697c4203bd2', 'release_type': ['ALBUM', 'REMIX'], 'spotify_id': 'http://open.spotify.com/track/1rrgWMXGCGHru5bIRxGFV0', 'tags': [], 'track_mbid': '3ad754b9-1af2-4743-8ee5-d91ba4c82f0f', 'tracknumber': 7, 'work_mbids': ['ac4f356f-23e5-40ab-990e-da7e34b65d6e', 'ac3a827c-ad58-4624-9aa4-ecfffc56d8fe']}, 'artist_name': 'Majid Jordan', 'release_name': 'Majid Jordan', 'track_name': 'Every Step Every Way'}, 'user_name': 'testuserpleaseignore'} | |
E | |
E Diff is 2238 characters long. Set self.maxDiff to None to see it. | |
listenbrainz/tests/integration/test_api.py:77: AssertionError | |
------------------------------------------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment