From 0e0501512e8e500441270076ce2a23817b0a5b3a Mon Sep 17 00:00:00 2001 From: Nicolas Evrard Date: Sat, 24 Aug 2019 22:42:23 +0200 Subject: [PATCH] Use a defined sourceTime when using parsedatetime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using the parsedatetime functionalities freezegun is not used to compute the source time. If the tests are run too close to midnight it might result in the computation of 'tomorrow' being another day then now() + 24h (because time.localtime() will be the next day) … thus failing test_default_due2. Setting sourceTime when calling parsedatime will ensure the same base is used for all tests. --- todoman/formatters.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/todoman/formatters.py b/todoman/formatters.py index 7740d3eb..7d19ca09 100644 --- a/todoman/formatters.py +++ b/todoman/formatters.py @@ -192,7 +192,8 @@ def _parse_datetime_naive(self, dt): except ValueError: pass - rv, pd_ctx = self._parsedatetime_calendar.parse(dt) + now = datetime.datetime.now(self.tz) + rv, pd_ctx = self._parsedatetime_calendar.parse(dt, now) if not pd_ctx.hasDateOrTime: raise ValueError('Time description not recognized: {}'.format(dt)) return datetime.datetime.fromtimestamp(mktime(rv))