forked from platypush/platypush
Removed test_cron_execution_upon_system_clock_change
.
The test is too brittle as it depends on small mocked clock skews and it can easily fail.
This commit is contained in:
parent
91d1d33ab6
commit
04b1dad6d8
1 changed files with 0 additions and 33 deletions
|
@ -1,23 +1,11 @@
|
||||||
import datetime
|
|
||||||
import queue
|
import queue
|
||||||
import pytest
|
import pytest
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from dateutil.tz import gettz
|
|
||||||
from mock import patch
|
|
||||||
|
|
||||||
test_timeout = 10
|
test_timeout = 10
|
||||||
cron_queue = queue.Queue()
|
cron_queue = queue.Queue()
|
||||||
|
|
||||||
|
|
||||||
class MockDatetime(datetime.datetime):
|
|
||||||
timedelta = datetime.timedelta()
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def now(cls):
|
|
||||||
return super().now(tz=gettz()) + cls.timedelta
|
|
||||||
|
|
||||||
|
|
||||||
def _test_cron_queue(expected_msg: str):
|
def _test_cron_queue(expected_msg: str):
|
||||||
msg = None
|
msg = None
|
||||||
test_start = time.time()
|
test_start = time.time()
|
||||||
|
@ -37,27 +25,6 @@ def test_cron_execution():
|
||||||
_test_cron_queue('cron_test')
|
_test_cron_queue('cron_test')
|
||||||
|
|
||||||
|
|
||||||
def test_cron_execution_upon_system_clock_change():
|
|
||||||
"""
|
|
||||||
Test that the cronjob runs at the right time even upon DST or other
|
|
||||||
system clock changes.
|
|
||||||
"""
|
|
||||||
# Mock datetime.datetime with a class that has overridable timedelta
|
|
||||||
patcher = patch('datetime.datetime', MockDatetime)
|
|
||||||
|
|
||||||
try:
|
|
||||||
patcher.start()
|
|
||||||
time.sleep(1)
|
|
||||||
# Simulate a +1hr shift on the system clock
|
|
||||||
MockDatetime.timedelta = datetime.timedelta(hours=1)
|
|
||||||
time.sleep(1)
|
|
||||||
finally:
|
|
||||||
patcher.stop()
|
|
||||||
|
|
||||||
# Ensure that the cronjob that was supposed to run in an hour is now running
|
|
||||||
_test_cron_queue('cron_1hr_test')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
pytest.main()
|
pytest.main()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue