diff options
author | iddo <iddo.aviram@similarweb.com> | 2015-11-23 17:07:43 +0200 |
---|---|---|
committer | iddo <iddo.aviram@similarweb.com> | 2015-11-23 17:07:43 +0200 |
commit | d896ef747f508c5df7ecea0cacbbd3e9a9311649 (patch) | |
tree | 6c83072a5af50e43326acb82048ad16f76af488c | |
parent | 1250656c3a1133bdda1e9b08d04d517a80fc3163 (diff) | |
download | croniter-d896ef747f508c5df7ecea0cacbbd3e9a9311649.tar.gz |
The fuctionality of 'l' as day of month was brokne, since the month variable was not properly updatediddoav/bug/last_day_of_month_is_not_correct
-rw-r--r-- | src/croniter/croniter.py | 1 | ||||
-rwxr-xr-x | src/croniter/tests/test_croniter.py | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/croniter/croniter.py b/src/croniter/croniter.py index 2a237a9..eabb241 100644 --- a/src/croniter/croniter.py +++ b/src/croniter/croniter.py @@ -350,6 +350,7 @@ class croniter(object): for proc in procs: (changed, dst) = proc(dst) if changed: + day, month, year = dst.day, dst.month, dst.year next = True break if next: diff --git a/src/croniter/tests/test_croniter.py b/src/croniter/tests/test_croniter.py index aa3c114..f8ac6f6 100755 --- a/src/croniter/tests/test_croniter.py +++ b/src/croniter/tests/test_croniter.py @@ -164,6 +164,22 @@ class CroniterTest(base.TestCase): self.assertEqual(n4.month, 1) self.assertEqual(n4.year, 2011) + def testLastDayOfMonth(self): + base = datetime(2015, 9, 4) + itr = croniter('0 0 l * *', base) + n1 = itr.get_next(datetime) + self.assertEqual(n1.month, 9) + self.assertEqual(n1.day, 30) + n2 = itr.get_next(datetime) + self.assertEqual(n2.month, 10) + self.assertEqual(n2.day, 31) + n3 = itr.get_next(datetime) + self.assertEqual(n3.month, 11) + self.assertEqual(n3.day, 30) + n4 = itr.get_next(datetime) + self.assertEqual(n4.month, 12) + self.assertEqual(n4.day, 31) + def testError(self): itr = croniter('* * * * *') self.assertRaises(TypeError, itr.get_next, str) |