def test_search_pairs_titles(self): item = Item(title='Song (live)', artist='A') self.assertIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song (live)']), lyrics.search_pairs(item)) item = Item(title='Song (live) (new)', artist='A') self.assertIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song (live) (new)']), lyrics.search_pairs(item)) item = Item(title='Song (live (new))', artist='A') self.assertIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song (live (new))']), lyrics.search_pairs(item)) item = Item(title='Song ft. B', artist='A') self.assertIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song ft. B']), lyrics.search_pairs(item)) item = Item(title='Song featuring B', artist='A') self.assertIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song featuring B']), lyrics.search_pairs(item)) item = Item(title='Song and B', artist='A') self.assertNotIn(('A', ['Song']), lyrics.search_pairs(item)) self.assertIn(('A', ['Song and B']), lyrics.search_pairs(item))
def _make_item(title, track, artist=u'some artist'): return Item(title=title, track=track, artist=artist, album=u'some album', length=1, mb_trackid='', mb_albumid='', mb_artistid='')
def item(self, title, track): return Item( title=title, track=track, mb_trackid='', mb_albumid='', mb_artistid='', )
def test_track_request(self): response_body = str( '{' '"tracks" : {' '"href" : "https://api.spotify.com/v1/search?query=Happy+album%3A' 'Despicable+Me+2+artist%3APharrell+Williams&offset=0&limit=20' '&type=track",' '"items" : [ {' '"album" : {' '"album_type" : "compilation",' '"available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG",' '"BO", "BR", "CA", "CH", "CL", "CO",' '"CR", "CY", "CZ", "DE", "DK", "DO",' '"EC", "EE", "ES", "FI", "FR", "GB",' '"GR", "GT", "HK", "HN", "HU", "IE",' '"IS", "IT", "LI", "LT", "LU", "LV",' '"MC", "MT", "MX", "MY", "NI", "NL",' '"NO", "NZ", "PA", "PE", "PH", "PL",' '"PT", "PY", "RO", "SE", "SG", "SI",' '"SK", "SV", "TR", "TW", "US", "UY" ],' '"external_urls" : {' '"spotify" : "https://open.spotify.com/album/' '5l3zEmMrOhOzG8d8s83GOL"' '},' '"href" : "https://api.spotify.com/v1/albums/' '5l3zEmMrOhOzG8d8s83GOL",' '"id" : "5l3zEmMrOhOzG8d8s83GOL",' '"images" : [ {' '"height" : 640,' '"url" : "https://i.scdn.co/image/cb7905340c132365bb' 'aee3f17498f062858382e8",' '"width" : 640' '}, {' '"height" : 300,' '"url" : "https://i.scdn.co/image/af369120f0b20099' 'd6784ab31c88256113f10ffb",' '"width" : 300' '}, {' '"height" : 64,' '"url" : "https://i.scdn.co/image/' '9dad385ddf2e7db0bef20cec1fcbdb08689d9ae8",' '"width" : 64' '} ],' '"name" : "Despicable Me 2 (Original Motion Picture Soundtrack)",' '"type" : "album",' '"uri" : "spotify:album:5l3zEmMrOhOzG8d8s83GOL"' '},' '"artists" : [ {' '"external_urls" : {' '"spotify" : "https://open.spotify.com/artist/' '2RdwBSPQiwcmiDo9kixcl8"' '},' '"href" : "https://api.spotify.com/v1/artists/' '2RdwBSPQiwcmiDo9kixcl8",' '"id" : "2RdwBSPQiwcmiDo9kixcl8",' '"name" : "Pharrell Williams",' '"type" : "artist",' '"uri" : "spotify:artist:2RdwBSPQiwcmiDo9kixcl8"' '} ],' '"available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG", "BO",' '"BR", "CA", "CH", "CL", "CO", "CR", "CY",' '"CZ", "DE", "DK", "DO", "EC", "EE", "ES",' '"FI", "FR", "GB", "GR", "GT", "HK", "HN",' '"HU", "IE", "IS", "IT", "LI", "LT", "LU",' '"LV", "MC", "MT", "MX", "MY", "NI", "NL",' '"NO", "NZ", "PA", "PE", "PH", "PL", "PT",' '"PY", "RO", "SE", "SG", "SI", "SK", "SV",' '"TR", "TW", "US", "UY" ],' '"disc_number" : 1,' '"duration_ms" : 233305,' '"explicit" : false,' '"external_ids" : {' '"isrc" : "USQ4E1300686"' '},' '"external_urls" : {' '"spotify" : "https://open.spotify.com/track/' '6NPVjNh8Jhru9xOmyQigds"' '},' '"href" : "https://api.spotify.com/v1/tracks/' '6NPVjNh8Jhru9xOmyQigds",' '"id" : "6NPVjNh8Jhru9xOmyQigds",' '"name" : "Happy",' '"popularity" : 89,' '"preview_url" : "https://p.scdn.co/mp3-preview/' '6b00000be293e6b25f61c33e206a0c522b5cbc87",' '"track_number" : 4,' '"type" : "track",' '"uri" : "spotify:track:6NPVjNh8Jhru9xOmyQigds"' '} ],' '"limit" : 20,' '"next" : null,' '"offset" : 0,' '"previous" : null,' '"total" : 1' '}' '}') responses.add(responses.GET, 'https://api.spotify.com/v1/search?q=Happy+album%3A' 'Despicable%20Me%202+artist%3APharrell%20' 'Williams&type=track', body=response_body, status=200, content_type='application/json') item = Item(mb_trackid='01234', album='Despicable Me 2', albumartist='Pharrell Williams', title='Happy', length=10) item.add(self.lib) results = self.spotify.query_spotify(self.lib, "Happy") self.assertEquals(1, len(results)) self.assertEquals("6NPVjNh8Jhru9xOmyQigds", results[0]['id']) self.spotify.output_results(results)
def item(self, title, track): return Item({ 'title': title, 'track': track, 'mb_trackid': '', 'mb_albumid': '', 'mb_artistid': '', })
def test_custom_field_range_query(self): item = Item(liveness=2.2) item.add(self.lib) item = self.lib.items('liveness:2.2..3').get() self.assertEqual(item['liveness'], 2.2)
def new_item(item): newitem = Item() newitem.update(item) return newitem