56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
|
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)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|