Files
musiclist-server/fetcher/tests.py
2020-06-04 06:18:13 -04:00

45 lines
1.5 KiB
Python

import redis
from django.test import TestCase
from fetcher import musicbrainz
class MusicBrainzTestCase(TestCase):
def setUp(self):
redis.Redis().flushall()
def test_can_do_basic_request(self):
artist_url = 'https://musicbrainz.org/ws/2/artist/65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab'
musicbrainz._do_request_mb(artist_url)
def test_do_request_response_format(self):
artist_url = 'https://musicbrainz.org/ws/2/artist/65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab'
response = musicbrainz._do_request_mb(artist_url)
self.assertIsInstance(response, dict)
self.assertEquals(response['status'], 200)
self.assertIsInstance(response['response'], dict)
def test_do_request_input_validation(self):
artist_url = 'https://musicbrainz.org/ws/2/artist/65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab'
self.assertRaises(ValueError, musicbrainz._do_request_mb, None)
self.assertRaises(ValueError, musicbrainz._do_request_mb, '')
musicbrainz._headers['user-agent'] = None
self.assertRaises(ValueError, musicbrainz._do_request_mb, artist_url)
def test_cache(self):
def fun():
return {}
musicbrainz.cache(fun)()
self.assertTrue(redis.Redis().keys('*') is not None)
self.assertEquals(musicbrainz.cache(fun)(), {})
redis.Redis().set('fun, [[], {}]', '{"test": true}')
self.assertEquals(musicbrainz.cache(fun)(), {"test": True})
def fun(a, b):
return {}
musicbrainz.cache(fun)('word', [''])