diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-01-20 00:30:00 +0200 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-01-20 14:06:13 +0200 |
commit | 79780c8bcfe19e959b67593d4bbc27b3c8e48c66 (patch) | |
tree | f6d35e4f79db18122a653b68675fb063d07a798c /tests/conftest.py | |
parent | 753a04b0df4a8f2213689cfcacd76df4793e37be (diff) | |
download | apscheduler-79780c8bcfe19e959b67593d4bbc27b3c8e48c66.tar.gz |
Migrated from nose to py.test
Diffstat (limited to 'tests/conftest.py')
-rw-r--r-- | tests/conftest.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..7a779b3 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,86 @@ +from warnings import filterwarnings, resetwarnings +from tempfile import NamedTemporaryFile +import os + +import pytest + +from apscheduler.jobstores.memory import MemoryJobStore +from apscheduler.jobstores.shelve import ShelveJobStore +from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore +from apscheduler.jobstores.mongodb import MongoDBJobStore +from apscheduler.jobstores.redis import RedisJobStore + + +@pytest.fixture +def memjobstore(request): + return MemoryJobStore() + + +@pytest.fixture +def shelvejobstore(request): + def finish(): + store.close() + if os.path.exists(store.path): + os.remove(store.path) + + filterwarnings('ignore', category=RuntimeWarning) + f = NamedTemporaryFile(prefix='apscheduler_') + f.close() + resetwarnings() + store = ShelveJobStore(f.name) + request.addfinalizer(finish) + return store + + +@pytest.fixture +def sqlalchemyjobstore(request): + def finish(): + store.close() + os.remove('tempdb.sqlite') + + if not SQLAlchemyJobStore: + pytest.skip('SQLAlchemyJobStore missing') + + store = SQLAlchemyJobStore(url='sqlite:///tempdb.sqlite') + request.addfinalizer(finish) + return store + + +@pytest.fixture +def mongodbjobstore(request): + def finish(): + connection = store.collection.database.connection + connection.drop_database(store.collection.database.name) + store.close() + + if not MongoDBJobStore: + pytest.skip('MongoDBJobStore missing') + + store = MongoDBJobStore(database='apscheduler_unittest') + request.addfinalizer(finish) + return store + + +@pytest.fixture +def redisjobstore(request): + def finish(): + store.redis.flushdb() + store.close() + + if not RedisJobStore: + pytest.skip('RedisJobStore missing') + + store = RedisJobStore() + request.addfinalizer(finish) + return store + + +@pytest.fixture +def jobstore(request): + return request.param(request) + + +all_jobstores = [memjobstore, shelvejobstore, sqlalchemyjobstore, mongodbjobstore, redisjobstore] +all_jobstores_ids = ['memory', 'shelve', 'sqlalchemy', 'mongodb', 'redis'] +persistent_jobstores = [shelvejobstore, sqlalchemyjobstore, mongodbjobstore, redisjobstore] +persistent_jobstores_ids = ['shelve', 'sqlalchemy', 'mongodb', 'redis'] |