From adb8304c670aaadd81a48f1270069acf12eb100f Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 2 May 2010 02:21:04 +0200 Subject: [PATCH] Try to fix path_to_uri for windows --- mopidy/utils.py | 3 +++ tests/utils_test.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mopidy/utils.py b/mopidy/utils.py index dc34031d..8ddca4c8 100644 --- a/mopidy/utils.py +++ b/mopidy/utils.py @@ -2,6 +2,7 @@ import logging from multiprocessing.reduction import reduce_connection import os import pickle +import sys import urllib logger = logging.getLogger('mopidy.utils') @@ -35,6 +36,8 @@ def get_or_create_folder(folder): def path_to_uri(*paths): path = os.path.join(*paths) path = path.encode('utf-8') + if sys.platform == 'win32': + return 'file:' + urllib.pathname2url(path) return 'file://' + urllib.pathname2url(path) def indent(string, places=4, linebreak='\n'): diff --git a/tests/utils_test.py b/tests/utils_test.py index 741ce3c9..3397c79f 100644 --- a/tests/utils_test.py +++ b/tests/utils_test.py @@ -42,32 +42,32 @@ class GetOrCreateFolderTest(unittest.TestCase): class PathToFileURITest(unittest.TestCase): def test_simple_path(self): if sys.platform == 'win32': - result = path_to_uri(u'c:/WINDOWS/clock.avi') - self.assertEqual(result, u'file:///c:/WINDOWS/clock.avi') + result = path_to_uri(u'C:/WINDOWS/clock.avi') + self.assertEqual(result, 'file:///C:/WINDOWS/clock.avi') else: result = path_to_uri(u'/etc/fstab') - self.assertEqual(result, u'file:///etc/fstab') + self.assertEqual(result, 'file:///etc/fstab') def test_folder_and_path(self): if sys.platform == 'win32': - result = path_to_uri(u'c:/WINDOWS/', u'clock.avi') - self.assertEqual(result, u'file:///c:/WINDOWS/clock.avi') + result = path_to_uri(u'C:/WINDOWS/', u'clock.avi') + self.assertEqual(result, 'file:///C:/WINDOWS/clock.avi') else: result = path_to_uri(u'/etc', u'fstab') self.assertEqual(result, u'file:///etc/fstab') def test_space_in_path(self): if sys.platform == 'win32': - result = path_to_uri(u'c:/test this') - self.assertEqual(result, u'file:///c:/test%20this') + result = path_to_uri(u'C:/test this') + self.assertEqual(result, 'file:///C:/test%20this') else: result = path_to_uri(u'/tmp/test this') self.assertEqual(result, u'file:///tmp/test%20this') def test_unicode_in_path(self): if sys.platform == 'win32': - result = path_to_uri(u'c:/æøå') - self.assertEqual(result, u'file:///c:/%C3%A6%C3%B8%C3%A5') + result = path_to_uri(u'C:/æøå') + self.assertEqual(result, 'file:///C:/%C3%A6%C3%B8%C3%A5') else: result = path_to_uri(u'/tmp/æøå') self.assertEqual(result, u'file:///tmp/%C3%A6%C3%B8%C3%A5')