2021-02-05 21:44:59 +00:00
|
|
|
import unittest
|
|
|
|
|
|
|
|
from spotframework.model.uri import Uri
|
|
|
|
|
|
|
|
class TestURI(unittest.TestCase):
|
|
|
|
|
|
|
|
def test_input_not_string(self):
|
|
|
|
with self.assertRaises(AttributeError):
|
|
|
|
Uri(7)
|
|
|
|
|
|
|
|
def test_start_spotify(self):
|
|
|
|
with self.assertRaises(ValueError):
|
|
|
|
# all uris start with spotify
|
|
|
|
# spotify:track:3EHhS6B2qJWup1nqUVQy1H
|
|
|
|
Uri("_potify:track:3EHhS6B2qJWup1nqUVQy1H")
|
|
|
|
|
|
|
|
# test 5 component scenario or remove from source
|
|
|
|
|
|
|
|
def test_6_components_is_local_uri(self):
|
|
|
|
with self.assertRaises(ValueError):
|
|
|
|
# all uris start with spotify
|
|
|
|
# spotify:local:{artist}:{album_title}:{track_title}:{duration_in_seconds}
|
|
|
|
Uri("spotify:_ocal:{artist}:{album_title}:{track_title}:{duration_in_seconds}")
|
|
|
|
|
|
|
|
def test_too_many_components(self):
|
|
|
|
with self.assertRaises(ValueError):
|
|
|
|
# all uris start with spotifys
|
|
|
|
Uri("spotify:test:test:test:test:test:test")
|
|
|
|
|
|
|
|
def test_equals(self):
|
|
|
|
uri_one = Uri("spotify:track:test")
|
|
|
|
uri_two = Uri("spotify:track:test")
|
|
|
|
|
|
|
|
self.assertEqual(uri_one, uri_two)
|
|
|
|
|
|
|
|
def test_equal_different_type(self):
|
|
|
|
uri_one = Uri("spotify:track:test")
|
|
|
|
uri_two = 7
|
|
|
|
|
|
|
|
self.assertNotEqual(uri_one, uri_two)
|
|
|
|
|
|
|
|
def test_equal_object_type(self):
|
|
|
|
uri_one = Uri("spotify:album:test")
|
|
|
|
uri_two = Uri("spotify:track:test")
|
|
|
|
|
|
|
|
self.assertNotEqual(uri_one, uri_two)
|
|
|
|
|
|
|
|
def test_equal_object_id(self):
|
|
|
|
uri_one = Uri("spotify:track:test")
|
|
|
|
uri_two = Uri("spotify:track:tester")
|
|
|
|
|
|
|
|
self.assertNotEqual(uri_one, uri_two)
|
|
|
|
|
2021-02-07 15:27:31 +00:00
|
|
|
def test_str(self):
|
|
|
|
uri = Uri("spotify:track:test")
|
|
|
|
|
|
|
|
self.assertEqual(str(uri), "spotify:track:test")
|
|
|
|
|
|
|
|
def test_repr(self):
|
|
|
|
uri = Uri("spotify:track:test")
|
|
|
|
|
|
|
|
self.assertEqual(repr(uri), "URI: track / test")
|
|
|
|
|
2021-02-05 21:44:59 +00:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
unittest.main()
|