Skip to content

Commit

Permalink
tests for translate_uri
Browse files Browse the repository at this point in the history
  • Loading branch information
xsteadfastx committed Nov 29, 2016
1 parent 3036c90 commit 650caf1
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 15 deletions.
16 changes: 10 additions & 6 deletions mopidy_emby/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,19 @@ def __init__(self, config, audio):
class EmbyPlaybackProvider(backend.PlaybackProvider):

def translate_uri(self, uri):
id = uri.split(':')[-1]
if uri.startswith('emby:track:') and len(uri.split(':')) == 3:
id = uri.split(':')[-1]

track_url = self.backend.remote.api_url(
'/Audio/{}/stream.mp3'.format(id)
)
track_url = self.backend.remote.api_url(
'/Audio/{}/stream.mp3'.format(id)
)

logger.debug('Emby track streaming url: {}'.format(track_url))
logger.debug('Emby track streaming url: {}'.format(track_url))

return track_url
return track_url

else:
return None


class EmbyLibraryProvider(backend.LibraryProvider):
Expand Down
15 changes: 12 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ def emby_client(config, mocker):
@pytest.fixture
def backend_mock():
backend_mock = mock.Mock(autospec=mopidy_emby.backend.EmbyBackend)

return backend_mock


@pytest.fixture
def libraryprovider(backend_mock):
backend_mock.remote(autospec=mopidy_emby.backend.EmbyHandler)
backend_mock.remote.get_artists.return_value = ['Artistlist']
backend_mock.remote.get_albums.return_value = ['Albumlist']
Expand All @@ -43,9 +49,12 @@ def backend_mock():
'Id': 123
}

return backend_mock
return mopidy_emby.backend.EmbyLibraryProvider(backend_mock)


@pytest.fixture
def provider(backend_mock):
return mopidy_emby.backend.EmbyLibraryProvider(backend_mock)
def playbackprovider(backend_mock, emby_client):
backend_mock.remote = emby_client

return mopidy_emby.backend.EmbyPlaybackProvider(audio=mock.Mock(),
backend=backend_mock)
26 changes: 20 additions & 6 deletions tests/test_extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,21 +213,35 @@ def test_create_artists(data, expected, emby_client):
('emby:artist:123', ['Albumlist']),
('emby:album:123', ['Tracklist']),
])
def test_browse(uri, expected, provider):
assert provider.browse(uri) == expected
def test_browse(uri, expected, libraryprovider):
assert libraryprovider.browse(uri) == expected


@pytest.mark.parametrize('uri,expected', [
('emby:track:123', [{'Name': 'Foo', 'Id': 123}]),
('emby:track', [])
])
def test_lookup_uri(uri, expected, provider):
assert provider.lookup(uri=uri) == expected
def test_lookup_uri(uri, expected, libraryprovider):
assert libraryprovider.lookup(uri=uri) == expected


@pytest.mark.parametrize('uri,expected', [
(['emby:track:123'], {'emby:track:123': [{'Name': 'Foo', 'Id': 123}]}),
(['emby:track'], {u'emby:track': []})
])
def test_lookup_uris(uri, expected, provider):
assert provider.lookup(uris=uri) == expected
def test_lookup_uris(uri, expected, libraryprovider):
assert libraryprovider.lookup(uris=uri) == expected


@pytest.mark.parametrize('uri,expected', [
(
'emby:track:123',
'https://foo.bar:443/Audio/123/stream.mp3?format=json'
),
(
'emby:foobar',
None
)
])
def test_translate_uri(playbackprovider, uri, expected):
assert playbackprovider.translate_uri(uri) == expected

0 comments on commit 650caf1

Please sign in to comment.