69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from mopidy import config
|
|
|
|
from tests import unittest, path_to_data_dir
|
|
|
|
|
|
class LoadConfigTest(unittest.TestCase):
|
|
def test_load_nothing(self):
|
|
self.assertEqual({}, config._load([], [], []))
|
|
|
|
def test_load_single_default(self):
|
|
default = '[foo]\nbar = baz'
|
|
expected = {'foo': {'bar': 'baz'}}
|
|
result = config._load([], [default], [])
|
|
self.assertEqual(expected, result)
|
|
|
|
def test_load_defaults(self):
|
|
default1 = '[foo]\nbar = baz'
|
|
default2 = '[foo2]\n'
|
|
expected = {'foo': {'bar': 'baz'}, 'foo2': {}}
|
|
result = config._load([], [default1, default2], [])
|
|
self.assertEqual(expected, result)
|
|
|
|
def test_load_single_override(self):
|
|
override = ('foo', 'bar', 'baz')
|
|
expected = {'foo': {'bar': 'baz'}}
|
|
result = config._load([], [], [override])
|
|
self.assertEqual(expected, result)
|
|
|
|
def test_load_overrides(self):
|
|
override1 = ('foo', 'bar', 'baz')
|
|
override2 = ('foo2', 'bar', 'baz')
|
|
expected = {'foo': {'bar': 'baz'}, 'foo2': {'bar': 'baz'}}
|
|
result = config._load([], [], [override1, override2])
|
|
self.assertEqual(expected, result)
|
|
|
|
def test_load_single_file(self):
|
|
file1 = path_to_data_dir('file1.conf')
|
|
expected = {'foo': {'bar': 'baz'}}
|
|
result = config._load([file1], [], [])
|
|
self.assertEqual(expected, result)
|
|
|
|
def test_load_files(self):
|
|
file1 = path_to_data_dir('file1.conf')
|
|
file2 = path_to_data_dir('file2.conf')
|
|
expected = {'foo': {'bar': 'baz'}, 'foo2': {'bar': 'baz'}}
|
|
result = config._load([file1, file2], [], [])
|
|
self.assertEqual(expected, result)
|
|
|
|
|
|
class ParseOverrideTest(unittest.TestCase):
|
|
def test_valid_override(self):
|
|
expected = ('section', 'key', 'value')
|
|
self.assertEqual(expected, config.parse_override('section/key=value'))
|
|
self.assertEqual(expected, config.parse_override('section/key=value '))
|
|
self.assertEqual(expected, config.parse_override('section/key =value'))
|
|
self.assertEqual(expected, config.parse_override('section /key=value'))
|
|
|
|
def test_empty_override(self):
|
|
expected = ('section', 'key', '')
|
|
self.assertEqual(expected, config.parse_override('section/key='))
|
|
self.assertEqual(expected, config.parse_override('section/key= '))
|
|
|
|
def test_invalid_override(self):
|
|
self.assertRaises(ValueError, config.parse_override, 'section/key')
|
|
self.assertRaises(ValueError, config.parse_override, 'section=')
|
|
self.assertRaises(ValueError, config.parse_override, 'section')
|