From 1c601470d4ef9e7409de3f760425a77ce13340af Mon Sep 17 00:00:00 2001 From: Kostyantyn Leschenko Date: Sat, 29 Oct 2016 11:43:21 +0300 Subject: [PATCH 1/3] Add validation for days of the week. --- pendulum/pendulum.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pendulum/pendulum.py b/pendulum/pendulum.py index 19f6b460..89a9c9c8 100644 --- a/pendulum/pendulum.py +++ b/pendulum/pendulum.py @@ -769,6 +769,8 @@ def set_week_starts_at(cls, value): :type value: int """ + if value not in range(7): + raise ValueError('Invalid day of the week value: {}'.format(value)) cls._week_starts_at = value @classmethod @@ -787,6 +789,8 @@ def set_week_ends_at(cls, value): :type value: int """ + if value not in range(7): + raise ValueError('Invalid day of the week value: {}'.format(value)) cls._week_ends_at = value @classmethod @@ -799,13 +803,17 @@ def get_weekend_days(cls): return cls._weekend_days @classmethod - def set_weekend_days(cls, value): + def set_weekend_days(cls, values): """ Set weekend days. :type value: list """ - cls._weekend_days = value + for value in values: + if value not in range(7): + raise ValueError('Invalid day of the week value: {}' + .format(value)) + cls._weekend_days = values # Normalization Rule @classmethod From 3b3e2da4224d01e799325d215e42efcff705d3cb Mon Sep 17 00:00:00 2001 From: Kostyantyn Leschenko Date: Sun, 30 Oct 2016 23:17:44 +0200 Subject: [PATCH 2/3] Use cls._days instead of range. --- pendulum/pendulum.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pendulum/pendulum.py b/pendulum/pendulum.py index 89a9c9c8..8ec1ec9a 100644 --- a/pendulum/pendulum.py +++ b/pendulum/pendulum.py @@ -769,8 +769,8 @@ def set_week_starts_at(cls, value): :type value: int """ - if value not in range(7): - raise ValueError('Invalid day of the week value: {}'.format(value)) + if value not in cls._days: + raise ValueError('Invalid day of the week: {}'.format(value)) cls._week_starts_at = value @classmethod @@ -789,8 +789,8 @@ def set_week_ends_at(cls, value): :type value: int """ - if value not in range(7): - raise ValueError('Invalid day of the week value: {}'.format(value)) + if value not in cls._days: + raise ValueError('Invalid day of the week: {}'.format(value)) cls._week_ends_at = value @classmethod @@ -810,8 +810,8 @@ def set_weekend_days(cls, values): :type value: list """ for value in values: - if value not in range(7): - raise ValueError('Invalid day of the week value: {}' + if value not in cls._days: + raise ValueError('Invalid day of the week: {}' .format(value)) cls._weekend_days = values From 991905e341d944e3cf689b282d269bba064dba8d Mon Sep 17 00:00:00 2001 From: Kostyantyn Leschenko Date: Sun, 30 Oct 2016 23:18:10 +0200 Subject: [PATCH 3/3] Add tests for invalid values. --- tests/pendulum_tests/test_day_of_week_modifiers.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/pendulum_tests/test_day_of_week_modifiers.py b/tests/pendulum_tests/test_day_of_week_modifiers.py index 627bed84..ebd1b664 100644 --- a/tests/pendulum_tests/test_day_of_week_modifiers.py +++ b/tests/pendulum_tests/test_day_of_week_modifiers.py @@ -9,6 +9,9 @@ class DayOfWeekModifiersTest(AbstractTestCase): + def test_set_weekend_days_invalid_value(self): + self.assertRaises(ValueError, Pendulum.set_weekend_days, [7]) + def test_get_weekend_days(self): self.assertEqual( [pendulum.SATURDAY, pendulum.SUNDAY], @@ -21,11 +24,17 @@ def test_get_weekend_days(self): ) Pendulum.set_weekend_days([pendulum.SATURDAY, pendulum.SUNDAY]) + def test_set_week_ends_at_invalid_value(self): + self.assertRaises(ValueError, Pendulum.set_week_ends_at, 7) + def test_get_week_ends_at(self): Pendulum.set_week_ends_at(pendulum.SATURDAY) self.assertEqual(Pendulum.get_week_ends_at(), pendulum.SATURDAY) Pendulum.set_week_ends_at(pendulum.SUNDAY) + def test_set_week_starts_at_invalid_value(self): + self.assertRaises(ValueError, Pendulum.set_week_starts_at, 7) + def test_get_week_starts_at(self): Pendulum.set_week_starts_at(pendulum.TUESDAY) self.assertEqual(Pendulum.get_week_starts_at(), pendulum.TUESDAY)