From f0131fdc9312a07e8b0e9c0f9d35f9817f938ab2 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 16 Apr 2013 21:21:09 +0200 Subject: [PATCH] config: Fix serialization of none --- mopidy/config/types.py | 6 ++++-- tests/config/types_test.py | 21 ++++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/mopidy/config/types.py b/mopidy/config/types.py index 7e943d27..f8614efd 100644 --- a/mopidy/config/types.py +++ b/mopidy/config/types.py @@ -55,6 +55,8 @@ class ConfigValue(object): def serialize(self, value, display=False): """Convert value back to string for saving.""" + if value is None: + return b'' return bytes(value) @@ -142,9 +144,9 @@ class Boolean(ConfigValue): def serialize(self, value, display=False): if value: - return 'true' + return b'true' else: - return 'false' + return b'false' class List(ConfigValue): diff --git a/tests/config/types_test.py b/tests/config/types_test.py index 2f3191bf..de800e98 100644 --- a/tests/config/types_test.py +++ b/tests/config/types_test.py @@ -23,6 +23,12 @@ class ConfigValueTest(unittest.TestCase): value = types.ConfigValue() self.assertIsInstance(value.serialize(object()), bytes) + def test_serialize_none(self): + value = types.ConfigValue() + result = value.serialize(None) + self.assertIsInstance(result, bytes) + self.assertEqual(b'', result) + def test_serialize_supports_display(self): value = types.ConfigValue() self.assertIsInstance(value.serialize(object(), display=True), bytes) @@ -177,10 +183,19 @@ class BooleanTest(unittest.TestCase): self.assertRaises(ValueError, value.deserialize, 'sure') self.assertRaises(ValueError, value.deserialize, '') - def test_serialize(self): + def test_serialize_true(self): value = types.Boolean() - self.assertEqual('true', value.serialize(True)) - self.assertEqual('false', value.serialize(False)) + result = value.serialize(True) + self.assertEqual(b'true', result) + self.assertIsInstance(result, bytes) + + def test_serialize_false(self): + value = types.Boolean() + result = value.serialize(False) + self.assertEqual(b'false', result) + self.assertIsInstance(result, bytes) + + # TODO: test None or other invalid values into serialize? class ListTest(unittest.TestCase):