Skip to content

Commit 9eb456b

Browse files
kleschenkosdispater
authored andcommitted
Add validation for days of the week. (#64)
* Add validation for days of the week. * Use cls._days instead of range. * Add tests for invalid values.
1 parent 042a966 commit 9eb456b

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

pendulum/pendulum.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ def set_week_starts_at(cls, value):
769769
770770
:type value: int
771771
"""
772+
if value not in cls._days:
773+
raise ValueError('Invalid day of the week: {}'.format(value))
772774
cls._week_starts_at = value
773775

774776
@classmethod
@@ -787,6 +789,8 @@ def set_week_ends_at(cls, value):
787789
788790
:type value: int
789791
"""
792+
if value not in cls._days:
793+
raise ValueError('Invalid day of the week: {}'.format(value))
790794
cls._week_ends_at = value
791795

792796
@classmethod
@@ -799,13 +803,17 @@ def get_weekend_days(cls):
799803
return cls._weekend_days
800804

801805
@classmethod
802-
def set_weekend_days(cls, value):
806+
def set_weekend_days(cls, values):
803807
"""
804808
Set weekend days.
805809
806810
:type value: list
807811
"""
808-
cls._weekend_days = value
812+
for value in values:
813+
if value not in cls._days:
814+
raise ValueError('Invalid day of the week: {}'
815+
.format(value))
816+
cls._weekend_days = values
809817

810818
# Normalization Rule
811819
@classmethod

tests/pendulum_tests/test_day_of_week_modifiers.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
class DayOfWeekModifiersTest(AbstractTestCase):
1111

12+
def test_set_weekend_days_invalid_value(self):
13+
self.assertRaises(ValueError, Pendulum.set_weekend_days, [7])
14+
1215
def test_get_weekend_days(self):
1316
self.assertEqual(
1417
[pendulum.SATURDAY, pendulum.SUNDAY],
@@ -21,11 +24,17 @@ def test_get_weekend_days(self):
2124
)
2225
Pendulum.set_weekend_days([pendulum.SATURDAY, pendulum.SUNDAY])
2326

27+
def test_set_week_ends_at_invalid_value(self):
28+
self.assertRaises(ValueError, Pendulum.set_week_ends_at, 7)
29+
2430
def test_get_week_ends_at(self):
2531
Pendulum.set_week_ends_at(pendulum.SATURDAY)
2632
self.assertEqual(Pendulum.get_week_ends_at(), pendulum.SATURDAY)
2733
Pendulum.set_week_ends_at(pendulum.SUNDAY)
2834

35+
def test_set_week_starts_at_invalid_value(self):
36+
self.assertRaises(ValueError, Pendulum.set_week_starts_at, 7)
37+
2938
def test_get_week_starts_at(self):
3039
Pendulum.set_week_starts_at(pendulum.TUESDAY)
3140
self.assertEqual(Pendulum.get_week_starts_at(), pendulum.TUESDAY)

0 commit comments

Comments
 (0)