mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-05-06 14:31:30 +00:00
test_config.py: Move config_files and fake_open into ConfigTestCase.
This commit is contained in:
parent
45a341dfd1
commit
f2d17d73a5
@ -26,27 +26,26 @@ from ubuntutools.config import UDTConfig, ubu_email
|
|||||||
from ubuntutools.logger import Logger
|
from ubuntutools.logger import Logger
|
||||||
from ubuntutools.test import unittest
|
from ubuntutools.test import unittest
|
||||||
|
|
||||||
config_files = {
|
class ConfigTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||||
|
_config_files = {
|
||||||
'system': '',
|
'system': '',
|
||||||
'user': '',
|
'user': '',
|
||||||
}
|
}
|
||||||
|
|
||||||
def fake_open(filename, mode='r'):
|
def _fake_open(self, filename, mode='r'):
|
||||||
if mode != 'r':
|
if mode != 'r':
|
||||||
raise IOError("Read only fake-file")
|
raise IOError("Read only fake-file")
|
||||||
files = {
|
files = {
|
||||||
'/etc/devscripts.conf': config_files['system'],
|
'/etc/devscripts.conf': self._config_files['system'],
|
||||||
os.path.expanduser('~/.devscripts'): config_files['user'],
|
os.path.expanduser('~/.devscripts'): self._config_files['user'],
|
||||||
}
|
}
|
||||||
if filename not in files:
|
if filename not in files:
|
||||||
raise IOError("No such file or directory: '%s'" % filename)
|
raise IOError("No such file or directory: '%s'" % filename)
|
||||||
return StringIO(files[filename])
|
return StringIO(files[filename])
|
||||||
|
|
||||||
|
|
||||||
class ConfigTestCase(mox.MoxTestBase, unittest.TestCase):
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(ConfigTestCase, self).setUp()
|
super(ConfigTestCase, self).setUp()
|
||||||
self.mox.stubs.Set(__builtin__, 'open', fake_open)
|
self.mox.stubs.Set(__builtin__, 'open', self._fake_open)
|
||||||
Logger.stdout = StringIO()
|
Logger.stdout = StringIO()
|
||||||
Logger.stderr = StringIO()
|
Logger.stderr = StringIO()
|
||||||
|
|
||||||
@ -61,14 +60,14 @@ class ConfigTestCase(mox.MoxTestBase, unittest.TestCase):
|
|||||||
self.clean_environment()
|
self.clean_environment()
|
||||||
|
|
||||||
def clean_environment(self):
|
def clean_environment(self):
|
||||||
config_files['system'] = ''
|
self._config_files['system'] = ''
|
||||||
config_files['user'] = ''
|
self._config_files['user'] = ''
|
||||||
for k in os.environ.keys():
|
for k in os.environ.keys():
|
||||||
if k.startswith(('UBUNTUTOOLS_', 'TEST_')):
|
if k.startswith(('UBUNTUTOOLS_', 'TEST_')):
|
||||||
del os.environ[k]
|
del os.environ[k]
|
||||||
|
|
||||||
def test_config_parsing(self):
|
def test_config_parsing(self):
|
||||||
config_files['user'] = """#COMMENT=yes
|
self._config_files['user'] = """#COMMENT=yes
|
||||||
\tTAB_INDENTED=yes
|
\tTAB_INDENTED=yes
|
||||||
SPACE_INDENTED=yes
|
SPACE_INDENTED=yes
|
||||||
SPACE_SUFFIX=yes
|
SPACE_SUFFIX=yes
|
||||||
@ -81,7 +80,7 @@ INHERIT=user
|
|||||||
REPEAT=no
|
REPEAT=no
|
||||||
REPEAT=yes
|
REPEAT=yes
|
||||||
"""
|
"""
|
||||||
config_files['system'] = 'INHERIT=system'
|
self._config_files['system'] = 'INHERIT=system'
|
||||||
self.assertEqual(UDTConfig(prefix='TEST').config, {
|
self.assertEqual(UDTConfig(prefix='TEST').config, {
|
||||||
'TAB_INDENTED': 'yes',
|
'TAB_INDENTED': 'yes',
|
||||||
'SPACE_INDENTED': 'yes',
|
'SPACE_INDENTED': 'yes',
|
||||||
@ -111,27 +110,27 @@ REPEAT=yes
|
|||||||
self.assertEqual(self.get_value('BUILDER', default='foo'), 'foo')
|
self.assertEqual(self.get_value('BUILDER', default='foo'), 'foo')
|
||||||
|
|
||||||
def test_scriptname_precedence(self):
|
def test_scriptname_precedence(self):
|
||||||
config_files['user'] = """TEST_BUILDER=foo
|
self._config_files['user'] = """TEST_BUILDER=foo
|
||||||
UBUNTUTOOLS_BUILDER=bar"""
|
UBUNTUTOOLS_BUILDER=bar"""
|
||||||
self.assertEqual(self.get_value('BUILDER'), 'foo')
|
self.assertEqual(self.get_value('BUILDER'), 'foo')
|
||||||
|
|
||||||
def test_configfile_precedence(self):
|
def test_configfile_precedence(self):
|
||||||
config_files['system'] = "UBUNTUTOOLS_BUILDER=foo"
|
self._config_files['system'] = "UBUNTUTOOLS_BUILDER=foo"
|
||||||
config_files['user'] = "UBUNTUTOOLS_BUILDER=bar"
|
self._config_files['user'] = "UBUNTUTOOLS_BUILDER=bar"
|
||||||
self.assertEqual(self.get_value('BUILDER'), 'bar')
|
self.assertEqual(self.get_value('BUILDER'), 'bar')
|
||||||
|
|
||||||
def test_environment_precedence(self):
|
def test_environment_precedence(self):
|
||||||
config_files['user'] = "UBUNTUTOOLS_BUILDER=bar"
|
self._config_files['user'] = "UBUNTUTOOLS_BUILDER=bar"
|
||||||
os.environ['UBUNTUTOOLS_BUILDER'] = 'baz'
|
os.environ['UBUNTUTOOLS_BUILDER'] = 'baz'
|
||||||
self.assertEqual(self.get_value('BUILDER'), 'baz')
|
self.assertEqual(self.get_value('BUILDER'), 'baz')
|
||||||
|
|
||||||
def test_general_environment_specific_config_precedence(self):
|
def test_general_environment_specific_config_precedence(self):
|
||||||
config_files['user'] = "TEST_BUILDER=bar"
|
self._config_files['user'] = "TEST_BUILDER=bar"
|
||||||
os.environ['UBUNTUTOOLS_BUILDER'] = 'foo'
|
os.environ['UBUNTUTOOLS_BUILDER'] = 'foo'
|
||||||
self.assertEqual(self.get_value('BUILDER'), 'bar')
|
self.assertEqual(self.get_value('BUILDER'), 'bar')
|
||||||
|
|
||||||
def test_compat_keys(self):
|
def test_compat_keys(self):
|
||||||
config_files['user'] = 'COMPATFOOBAR=bar'
|
self._config_files['user'] = 'COMPATFOOBAR=bar'
|
||||||
self.assertEqual(self.get_value('QUX', compat_keys=['COMPATFOOBAR']),
|
self.assertEqual(self.get_value('QUX', compat_keys=['COMPATFOOBAR']),
|
||||||
'bar')
|
'bar')
|
||||||
errs = Logger.stderr.getvalue().strip()
|
errs = Logger.stderr.getvalue().strip()
|
||||||
@ -141,15 +140,15 @@ REPEAT=yes
|
|||||||
r'deprecated.*\bCOMPATFOOBAR\b.*\bTEST_QUX\b')
|
r'deprecated.*\bCOMPATFOOBAR\b.*\bTEST_QUX\b')
|
||||||
|
|
||||||
def test_boolean(self):
|
def test_boolean(self):
|
||||||
config_files['user'] = "TEST_BOOLEAN=yes"
|
self._config_files['user'] = "TEST_BOOLEAN=yes"
|
||||||
self.assertEqual(self.get_value('BOOLEAN', boolean=True), True)
|
self.assertEqual(self.get_value('BOOLEAN', boolean=True), True)
|
||||||
config_files['user'] = "TEST_BOOLEAN=no"
|
self._config_files['user'] = "TEST_BOOLEAN=no"
|
||||||
self.assertEqual(self.get_value('BOOLEAN', boolean=True), False)
|
self.assertEqual(self.get_value('BOOLEAN', boolean=True), False)
|
||||||
config_files['user'] = "TEST_BOOLEAN=true"
|
self._config_files['user'] = "TEST_BOOLEAN=true"
|
||||||
self.assertEqual(self.get_value('BOOLEAN', boolean=True), None)
|
self.assertEqual(self.get_value('BOOLEAN', boolean=True), None)
|
||||||
|
|
||||||
def test_nonpackagewide(self):
|
def test_nonpackagewide(self):
|
||||||
config_files['user'] = 'UBUNTUTOOLS_FOOBAR=a'
|
self._config_files['user'] = 'UBUNTUTOOLS_FOOBAR=a'
|
||||||
self.assertEquals(self.get_value('FOOBAR'), None)
|
self.assertEquals(self.get_value('FOOBAR'), None)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user