From: Tomas Babej Date: Fri, 20 Feb 2015 10:49:22 +0000 (+0100) Subject: normalizers: Handle None properly in all normalizers X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/6b76f794ee4fd89d194903eb9a0487243e06437c?ds=sidebyside;hp=--cc normalizers: Handle None properly in all normalizers --- 6b76f794ee4fd89d194903eb9a0487243e06437c diff --git a/tasklib/task.py b/tasklib/task.py index 7b512c5..789e4ef 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -103,6 +103,10 @@ class SerializingObject(object): or entered as a value of Task attribute. """ + # None value should not be converted by normalizer + if value is None: + return None + normalize_func = getattr(self, 'normalize_{0}'.format(key), lambda x: x) @@ -233,7 +237,7 @@ class SerializingObject(object): # If the value is already localized, there is no need to change # time zone at this point. Also None is a valid value too. localized = value - + return localized def normalize_uuid(self, value): diff --git a/tasklib/tests.py b/tasklib/tests.py index bc2885a..5ebea13 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -502,12 +502,8 @@ class TaskTest(TasklibTest): # Test that any normalizer can handle None as a valid value t = Task(self.tw) - # These normalizers are not supposed to handle None - exempt_normalizers = ('normalize_uuid', ) - normalizers = [getattr(t, normalizer_name) for normalizer_name in - filter(lambda x: x.startswith('normalize_'), dir(t)) - if normalizer_name not in exempt_normalizers] + filter(lambda x: x.startswith('normalize_'), dir(t))] for normalizer in normalizers: normalizer(None)