69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
# encoding: utf-8
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
import pytest
|
|
|
|
from mopidy.local import translator
|
|
|
|
|
|
@pytest.mark.parametrize('local_uri,file_uri', [
|
|
('local:directory:A/B', 'file:///home/alice/Music/A/B'),
|
|
('local:directory:A%20B', 'file:///home/alice/Music/A%20B'),
|
|
('local:directory:A+B', 'file:///home/alice/Music/A%2BB'),
|
|
(
|
|
'local:directory:%C3%A6%C3%B8%C3%A5',
|
|
'file:///home/alice/Music/%C3%A6%C3%B8%C3%A5'),
|
|
('local:track:A/B.mp3', 'file:///home/alice/Music/A/B.mp3'),
|
|
('local:track:A%20B.mp3', 'file:///home/alice/Music/A%20B.mp3'),
|
|
('local:track:A+B.mp3', 'file:///home/alice/Music/A%2BB.mp3'),
|
|
(
|
|
'local:track:%C3%A6%C3%B8%C3%A5.mp3',
|
|
'file:///home/alice/Music/%C3%A6%C3%B8%C3%A5.mp3'),
|
|
])
|
|
def test_local_uri_to_file_uri(local_uri, file_uri):
|
|
media_dir = b'/home/alice/Music'
|
|
|
|
assert translator.local_uri_to_file_uri(local_uri, media_dir) == file_uri
|
|
|
|
|
|
@pytest.mark.parametrize('uri', [
|
|
'A/B',
|
|
'local:foo:A/B',
|
|
])
|
|
def test_local_uri_to_file_uri_errors(uri):
|
|
media_dir = b'/home/alice/Music'
|
|
|
|
with pytest.raises(ValueError):
|
|
translator.local_uri_to_file_uri(uri, media_dir)
|
|
|
|
|
|
@pytest.mark.parametrize('uri,path', [
|
|
('local:directory:A/B', b'/home/alice/Music/A/B'),
|
|
('local:directory:A%20B', b'/home/alice/Music/A B'),
|
|
('local:directory:A+B', b'/home/alice/Music/A+B'),
|
|
('local:directory:%C3%A6%C3%B8%C3%A5', b'/home/alice/Music/æøå'),
|
|
('local:track:A/B.mp3', b'/home/alice/Music/A/B.mp3'),
|
|
('local:track:A%20B.mp3', b'/home/alice/Music/A B.mp3'),
|
|
('local:track:A+B.mp3', b'/home/alice/Music/A+B.mp3'),
|
|
('local:track:%C3%A6%C3%B8%C3%A5.mp3', b'/home/alice/Music/æøå.mp3'),
|
|
])
|
|
def test_local_uri_to_path(uri, path):
|
|
media_dir = b'/home/alice/Music'
|
|
|
|
assert translator.local_uri_to_path(uri, media_dir) == path
|
|
|
|
# Legacy version to keep old versions of Mopidy-Local-Sqlite working
|
|
assert translator.local_track_uri_to_path(uri, media_dir) == path
|
|
|
|
|
|
@pytest.mark.parametrize('uri', [
|
|
'A/B',
|
|
'local:foo:A/B',
|
|
])
|
|
def test_local_uri_to_path_errors(uri):
|
|
media_dir = b'/home/alice/Music'
|
|
|
|
with pytest.raises(ValueError):
|
|
translator.local_uri_to_path(uri, media_dir)
|