diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2018-08-15 21:16:25 +0300 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2018-08-15 21:16:25 +0300 |
commit | a1be548fbf8b5d4c427a2389f20806f2275fe013 (patch) | |
tree | 214336b8d72f77f306fc69babac4bbd0bfcd4010 | |
parent | 8ebdae9bfe468a836079c26f8ed2b2362f9bebf9 (diff) | |
download | apscheduler-a1be548fbf8b5d4c427a2389f20806f2275fe013.tar.gz |
Added Python 3.7 compatibility
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | setup.py | 5 | ||||
-rw-r--r-- | tests/test_schedulers.py | 6 | ||||
-rw-r--r-- | tests/test_triggers.py | 10 | ||||
-rw-r--r-- | tox.ini | 4 |
5 files changed, 22 insertions, 7 deletions
diff --git a/.travis.yml b/.travis.yml index 4ba520d..6eb1e4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ sudo: required +dist: xenial language: python stages: @@ -28,6 +29,9 @@ jobs: - env: TOXENV=py36 python: "3.6" + - env: TOXENV=py37 + python: "3.7" + - env: TOXENV=flake8 sudo: false python: "3.5" @@ -28,7 +28,8 @@ setup( 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6' + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7' ], keywords='scheduling cron', license='MIT', @@ -59,7 +60,7 @@ setup( 'pytest-tornado5' ], 'testing:python_version == "2.7"': ['mock'], - 'testing:python_version != "2.7"': ['pytest_asyncio < 0.6.0'] + 'testing:python_version != "2.7"': ['pytest_asyncio'] }, zip_safe=False, entry_points={ diff --git a/tests/test_schedulers.py b/tests/test_schedulers.py index 198745a..73baef4 100644 --- a/tests/test_schedulers.py +++ b/tests/test_schedulers.py @@ -1,4 +1,5 @@ import logging +import sys from datetime import datetime, timedelta from threading import Thread @@ -728,8 +729,10 @@ Jobstore other: assert str(exc.value) == 'Expected a trigger instance or string, got int instead' def test_create_trigger_bad_plugin_type(self, scheduler): + mock_plugin = MagicMock() + mock_plugin.load.configure_mock(return_value=object) scheduler._trigger_classes = {} - scheduler._trigger_plugins = {'dummy': MagicMock(return_value=object)} + scheduler._trigger_plugins = {'dummy': mock_plugin} exc = pytest.raises(TypeError, scheduler._create_trigger, 'dummy', {}) assert str(exc.value) == 'The trigger entry point does not point to a trigger class' @@ -968,6 +971,7 @@ class TestAsyncIOScheduler(SchedulerImplementationTestBase): thread.join() +@pytest.mark.skipif(sys.version_info >= (3, 7), reason='Gevent does not yet work on Python 3.7+') class TestGeventScheduler(SchedulerImplementationTestBase): @pytest.fixture def scheduler(self): diff --git a/tests/test_triggers.py b/tests/test_triggers.py index dffc71d..299e9f6 100644 --- a/tests/test_triggers.py +++ b/tests/test_triggers.py @@ -1,5 +1,6 @@ import pickle import random +import sys from datetime import datetime, timedelta, date import pytest @@ -538,9 +539,14 @@ class TestIntervalTrigger(object): assert repr(trigger) == "<CronTrigger (day='1-2,4-7', timezone='Europe/Berlin')>" def test_repr(self, trigger): - assert repr(trigger) == ("<IntervalTrigger (interval=datetime.timedelta(0, 1), " + if sys.version_info[:2] < (3, 7): + timedelta_args = '0, 1' + else: + timedelta_args = 'seconds=1' + + assert repr(trigger) == ("<IntervalTrigger (interval=datetime.timedelta({}), " "start_date='2009-08-04 00:00:02 CEST', " - "timezone='Europe/Berlin')>") + "timezone='Europe/Berlin')>".format(timedelta_args)) def test_str(self, trigger): assert str(trigger) == "interval[0:00:01]" @@ -1,5 +1,5 @@ [tox] -envlist = py27, py34, py35, py36, pypy, pypy3, flake8 +envlist = py27, py34, py35, py36, py37, pypy, pypy3, flake8 skip_missing_interpreters = true [testenv] @@ -14,7 +14,7 @@ extras = testing tornado twisted zookeeper -deps = {py35,py36}: PyQt5 +deps = {py35,py36,py37}: PyQt5 [testenv:flake8] deps = flake8 |