Should now be usable with all timezone libs
* Fixed unittest runner to return nonzero status on failure
This commit is contained in:
parent
e9426e934e
commit
112109d017
3 changed files with 9 additions and 11 deletions
|
@ -374,6 +374,7 @@ class CronTab(object):
|
||||||
# handle timezones if the datetime object has a timezone and get a
|
# handle timezones if the datetime object has a timezone and get a
|
||||||
# reasonable future/past start time
|
# reasonable future/past start time
|
||||||
onow, now = now, now.replace(tzinfo=None)
|
onow, now = now, now.replace(tzinfo=None)
|
||||||
|
tz = onow.tzinfo
|
||||||
future = now.replace(second=0, microsecond=0) + increments[0]()
|
future = now.replace(second=0, microsecond=0) + increments[0]()
|
||||||
if future < now:
|
if future < now:
|
||||||
# we are going backwards...
|
# we are going backwards...
|
||||||
|
@ -409,15 +410,16 @@ class CronTab(object):
|
||||||
"author with the following information:\n" \
|
"author with the following information:\n" \
|
||||||
"crontab: %r\n" \
|
"crontab: %r\n" \
|
||||||
"now: %r", ' '.join(m.input for m in self.matchers), now)
|
"now: %r", ' '.join(m.input for m in self.matchers), now)
|
||||||
if onow.tzinfo:
|
delay = future - now
|
||||||
future = onow.tzinfo.localize(future)
|
if tz:
|
||||||
|
delay += tz.utcoffset(now)
|
||||||
|
delay -= tz.utcoffset(future)
|
||||||
|
|
||||||
delay = future - onow
|
|
||||||
if not delta:
|
if not delta:
|
||||||
begin = datetime(1970, 1, 1)
|
begin = datetime(1970, 1, 1)
|
||||||
if onow.tzinfo:
|
|
||||||
begin = onow.tzinfo.localize(begin)
|
|
||||||
delay = future - begin
|
delay = future - begin
|
||||||
|
if tz:
|
||||||
|
delay -= tz.utcoffset(future)
|
||||||
return delay.days * 86400 + delay.seconds + delay.microseconds / 1000000.
|
return delay.days * 86400 + delay.seconds + delay.microseconds / 1000000.
|
||||||
|
|
||||||
def previous(self, now=None, delta=True, default_utc=WARN_CHANGE):
|
def previous(self, now=None, delta=True, default_utc=WARN_CHANGE):
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -10,7 +10,7 @@ except:
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='crontab',
|
name='crontab',
|
||||||
version='0.21.1',
|
version='0.21.2',
|
||||||
description='Parse and use crontab schedules in Python',
|
description='Parse and use crontab schedules in Python',
|
||||||
author='Josiah Carlson',
|
author='Josiah Carlson',
|
||||||
author_email='josiah.carlson@gmail.com',
|
author_email='josiah.carlson@gmail.com',
|
||||||
|
|
|
@ -172,9 +172,5 @@ class TestCrontab(unittest.TestCase):
|
||||||
self.assertEquals(s.next(pytz.timezone('US/Eastern').localize(datetime.datetime(2016, 3, 13))), 28800)
|
self.assertEquals(s.next(pytz.timezone('US/Eastern').localize(datetime.datetime(2016, 3, 13))), 28800)
|
||||||
|
|
||||||
|
|
||||||
def test():
|
|
||||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestCrontab)
|
|
||||||
unittest.TextTestRunner(verbosity=2).run(suite)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
test()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue