From edc1dcade8ac638a69ce6214fcfdcd7ae3742078 Mon Sep 17 00:00:00 2001 From: Nikolaus Piccolotto Date: Wed, 20 Jan 2016 23:24:58 +0100 Subject: [PATCH] #65 add some unit tests --- tests/test_library.py | 60 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/tests/test_library.py b/tests/test_library.py index 39830a0..083f9d2 100644 --- a/tests/test_library.py +++ b/tests/test_library.py @@ -3,28 +3,25 @@ import unittest -import pykka +import mock -from mopidy_soundcloud import SoundCloudExtension, actor +from mopidy_soundcloud import SoundCloudExtension from mopidy_soundcloud.library import ( - SoundCloudLibraryProvider, new_folder, simplify_search_query) + SoundCloudLibraryProvider, + new_folder, + simplify_search_query +) from mopidy_soundcloud.soundcloud import safe_url -class ApiTest(unittest.TestCase): +class LibraryTest(unittest.TestCase): def setUp(self): config = SoundCloudExtension().get_config_schema() config['auth_token'] = '1-35204-61921957-55796ebef403996' # using this user http://maildrop.cc/inbox/mopidytestuser - self.backend = actor.SoundCloudBackend.start( - config={'soundcloud': config}, - audio=None - ).proxy() + self.backend = mock.Mock() self.library = SoundCloudLibraryProvider(backend=self.backend) - def tearDown(self): - pykka.ActorRegistry.stop_all() - def test_add_folder(self): try: from mopidy.models import Ref @@ -99,3 +96,44 @@ def test_default_folders(self): uri='soundcloud:directory:stream') ] ) + + def test_lookup_explore(self): + self.library.lookup('soundcloud:directory:explore/0') + self.backend.remote.get_explore.assert_called_once_with('0') + + def test_lookup_following(self): + self.library.lookup('soundcloud:directory:following') + self.backend.remote.get_followings.assert_called_once_with() + + def test_lookup_groups(self): + self.library.lookup('soundcloud:directory:groups/0') + self.backend.remote.get_groups.assert_called_once_with('0') + + def test_lookup_liked(self): + self.library.lookup('soundcloud:directory:liked') + self.backend.remote.get_user_liked.assert_called_once_with() + + def test_lookup_sets(self): + self.library.lookup('soundcloud:directory:sets/0') + self.backend.remote.get_set.assert_called_once_with('0') + + def test_lookup_stream(self): + self.library.lookup('soundcloud:directory:stream') + self.backend.remote.get_user_stream.assert_called_once_with() + + def test_lookup_track(self): + self.library.lookup('sc:something') + self.backend.remote.resolve_url.assert_called_once_with('something') + + def test_lookup_track_by_id(self): + self.backend.remote.parse_track_uri.return_value = 0 + self.backend.remote.get_track.return_value = 'bar' + result = self.library.lookup('foo') + self.backend.remote.parse_track_uri.assert_called_once_with('foo') + self.backend.remote.get_track.assert_called_once_with(0) + self.assertEquals(result, ['bar']) + + def test_lookup_error(self): + self.backend.remote.get_user_stream.side_effect = Exception('No.') + result = self.library.lookup('soundcloud:directory:stream') + self.assertEquals(result, [])