def test_date_and_delta(self): now = datetime.now() td = timedelta int_tests = (3, 29, 86399, 86400, 86401*30) date_tests = [now - td(seconds=x) for x in int_tests] td_tests = [td(seconds=x) for x in int_tests] results = [(now - td(seconds=x), td(seconds=x)) for x in int_tests] for t in (int_tests, date_tests, td_tests): for arg, result in zip(t, results): dt, d = time.date_and_delta(arg) self.assertEqualDatetime(dt, result[0]) self.assertEqualTimedelta(d, result[1]) self.assertEqual(time.date_and_delta("NaN"), (None, "NaN"))
def test_date_and_delta(): now = dt.datetime.now() td = dt.timedelta int_tests = (3, 29, 86399, 86400, 86401 * 30) date_tests = [now - td(seconds=x) for x in int_tests] td_tests = [td(seconds=x) for x in int_tests] results = [(now - td(seconds=x), td(seconds=x)) for x in int_tests] for t in (int_tests, date_tests, td_tests): for arg, result in zip(t, results): date, d = time.date_and_delta(arg) assertEqualDatetime(date, result[0]) assertEqualTimedelta(d, result[1]) assert time.date_and_delta("NaN") == (None, "NaN")
def humanize_date_and_delta(eval_ctx, value, *args, now=None): return date_and_delta(value, *args, now=now)