1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
# Copyright 2014 Nick Boultbee
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
import os
from senf import fsnative
from quodlibet import config
from quodlibet.util.library import split_scan_dirs, set_scan_dirs, \
get_exclude_dirs, get_scan_dirs
from quodlibet.util import is_windows
from quodlibet.util.path import get_home_dir, unexpand
from tests import TestCase
STANDARD_PATH = fsnative(u"/home/user/Music")
OTHER_PATH = fsnative(u"/opt/party")
GVFS_PATH = fsnative(u"/run/user/12345/gvfs/smb-share"
":server=12.23.34.45,share=/foo/bar/baz/path")
GVFS_PATH_ESCAPED = fsnative(u"/run/user/12345/gvfs/smb-share"
"\\:server=12.23.34.45,share=/foo/bar/baz/path")
class Tlibrary_utils(TestCase):
def test_basic(self):
if is_windows():
res = split_scan_dirs(u":Z:\\foo:C:/windows:")
self.assertEquals(res, [u"Z:\\foo", u"C:/windows"])
else:
res = split_scan_dirs(":%s:%s:" % (STANDARD_PATH, OTHER_PATH))
self.assertEquals(res, [STANDARD_PATH, OTHER_PATH])
def test_colon_paths(self):
if not is_windows():
res = split_scan_dirs(
":%s:%s" % (STANDARD_PATH, GVFS_PATH_ESCAPED))
self.assertEquals(res, [STANDARD_PATH, GVFS_PATH])
def test_get_exclude_dirs(self):
some_path = os.path.join(get_home_dir(), "foo")
if os.name != "nt":
some_path = unexpand(some_path)
config.set('library', 'exclude', some_path)
assert os.path.expanduser(some_path) in get_exclude_dirs()
assert all([isinstance(p, fsnative) for p in get_exclude_dirs()])
def test_get_scan_dirs(self):
some_path = os.path.join(get_home_dir(), "foo")
if os.name != "nt":
some_path = unexpand(some_path)
config.set('settings', 'scan', some_path)
assert os.path.expanduser(some_path) in get_scan_dirs()
assert all([isinstance(p, fsnative) for p in get_scan_dirs()])
class Tset_scan_dirs(TestCase):
@property
def scan_dirs(self):
return config.get('settings', 'scan')
def test_set_scan_dirs_empty(self):
set_scan_dirs([])
self.assertEqual(self.scan_dirs, "")
def test_set_scan_dirs_single(self):
set_scan_dirs([STANDARD_PATH])
self.assertEqual(self.scan_dirs, STANDARD_PATH)
def test_set_scan_dirs_multiple(self):
set_scan_dirs([OTHER_PATH, STANDARD_PATH])
self.assertEqual(self.scan_dirs,
"%s:%s" % (OTHER_PATH, STANDARD_PATH))
def test_set_scan_dirs_colons(self):
set_scan_dirs([STANDARD_PATH, GVFS_PATH])
expected = GVFS_PATH if is_windows() else GVFS_PATH_ESCAPED
self.assertEqual(self.scan_dirs, "%s:%s" % (STANDARD_PATH, expected))
|