Skip to content

Commit c3a3eb1

Browse files
committed
change(datetimes): allow date to be passed not as a callable
1 parent 8af2faa commit c3a3eb1

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

iarp_utils/datetimes.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def iterate_steps_between_datetimes(start, end, steps):
5555
start += steps
5656

5757

58-
def get_current_week_of(weekday_number, date=datetime.datetime.today):
58+
def get_current_week_of(weekday_number, date=None):
5959
""" Returns the last date of the weekday_number supplied.
6060
6161
i.e. I always need Thursdays but if today isn't Thursday,
@@ -74,7 +74,9 @@ def get_current_week_of(weekday_number, date=datetime.datetime.today):
7474
date object
7575
7676
"""
77-
today = date()
77+
today = date
78+
if not date:
79+
today = datetime.datetime.today()
7880

7981
offset = (today.weekday() - weekday_number) % 7
8082

tests/test_datetimes.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def test_short_day_name(self):
2727
self.assertEqual(5, weekday('fri'))
2828
self.assertEqual(6, weekday('sat'))
2929

30+
3031
class DatetimeLoopIteratorTests(unittest.TestCase):
3132
def test_iterator_five_minutes(self):
3233

@@ -66,6 +67,7 @@ def test_iterator_ten_minutes(self):
6667

6768
self.assertEqual([], expected)
6869

70+
6971
class CurrentWeekOfTests(unittest.TestCase):
7072

7173
def test_current_week_of_general_value(self):
@@ -79,3 +81,14 @@ def test_current_week_of_general_value(self):
7981
self.assertEqual(datetime.date(2001, 1, 12), get_current_week_of(calendar.FRIDAY))
8082
self.assertEqual(datetime.date(2001, 1, 13), get_current_week_of(calendar.SATURDAY))
8183
self.assertEqual(datetime.date(2001, 1, 14), get_current_week_of(calendar.SUNDAY))
84+
85+
def test_current_week_of_general_value_as_passed_param(self):
86+
date = datetime.date(2001, 1, 18)
87+
88+
self.assertEqual(datetime.date(2001, 1, 15), get_current_week_of(calendar.MONDAY, date=date))
89+
self.assertEqual(datetime.date(2001, 1, 16), get_current_week_of(calendar.TUESDAY, date=date))
90+
self.assertEqual(datetime.date(2001, 1, 17), get_current_week_of(calendar.WEDNESDAY, date=date))
91+
self.assertEqual(datetime.date(2001, 1, 18), get_current_week_of(calendar.THURSDAY, date=date))
92+
self.assertEqual(datetime.date(2001, 1, 12), get_current_week_of(calendar.FRIDAY, date=date))
93+
self.assertEqual(datetime.date(2001, 1, 13), get_current_week_of(calendar.SATURDAY, date=date))
94+
self.assertEqual(datetime.date(2001, 1, 14), get_current_week_of(calendar.SUNDAY, date=date))

0 commit comments

Comments
 (0)