config: Ensure that overrides are bytes

This commit is contained in:
Thomas Adamcik 2013-04-28 23:28:20 +02:00
parent 9974f77f1b
commit 64465d318d
2 changed files with 18 additions and 12 deletions

View File

@ -141,8 +141,8 @@ def _format(config, comments, schemas, display):
def parse_override(override): def parse_override(override):
"""Parse ``section/key=value`` command line overrides""" """Parse ``section/key=value`` command line overrides"""
section, remainder = override.split('/', 1) section, remainder = override.split(b'/', 1)
key, value = remainder.split('=', 1) key, value = remainder.split(b'=', 1)
return (section.strip(), key.strip(), value.strip()) return (section.strip(), key.strip(), value.strip())

View File

@ -109,18 +109,24 @@ class ValidateTest(unittest.TestCase):
class ParseOverrideTest(unittest.TestCase): class ParseOverrideTest(unittest.TestCase):
def test_valid_override(self): def test_valid_override(self):
expected = ('section', 'key', 'value') expected = (b'section', b'key', b'value')
self.assertEqual(expected, config.parse_override('section/key=value')) self.assertEqual(expected, config.parse_override(b'section/key=value'))
self.assertEqual(expected, config.parse_override('section/key=value ')) self.assertEqual(expected, config.parse_override(b'section/key=value '))
self.assertEqual(expected, config.parse_override('section/key =value')) self.assertEqual(expected, config.parse_override(b'section/key =value'))
self.assertEqual(expected, config.parse_override('section /key=value')) self.assertEqual(expected, config.parse_override(b'section /key=value'))
def test_valid_override_is_bytes(self):
section, key, value = config.parse_override(b'section/key=value')
self.assertIsInstance(section, bytes)
self.assertIsInstance(key, bytes)
self.assertIsInstance(value, bytes)
def test_empty_override(self): def test_empty_override(self):
expected = ('section', 'key', '') expected = ('section', 'key', '')
self.assertEqual(expected, config.parse_override('section/key=')) self.assertEqual(expected, config.parse_override(b'section/key='))
self.assertEqual(expected, config.parse_override('section/key= ')) self.assertEqual(expected, config.parse_override(b'section/key= '))
def test_invalid_override(self): def test_invalid_override(self):
self.assertRaises(ValueError, config.parse_override, 'section/key') self.assertRaises(ValueError, config.parse_override, b'section/key')
self.assertRaises(ValueError, config.parse_override, 'section=') self.assertRaises(ValueError, config.parse_override, b'section=')
self.assertRaises(ValueError, config.parse_override, 'section') self.assertRaises(ValueError, config.parse_override, b'section')