summaryrefslogtreecommitdiff
path: root/tests/conftest.py
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2014-01-20 00:30:00 +0200
committerAlex Grönholm <alex.gronholm@nextday.fi>2014-01-20 14:06:13 +0200
commit79780c8bcfe19e959b67593d4bbc27b3c8e48c66 (patch)
treef6d35e4f79db18122a653b68675fb063d07a798c /tests/conftest.py
parent753a04b0df4a8f2213689cfcacd76df4793e37be (diff)
downloadapscheduler-79780c8bcfe19e959b67593d4bbc27b3c8e48c66.tar.gz
Migrated from nose to py.test
Diffstat (limited to 'tests/conftest.py')
-rw-r--r--tests/conftest.py86
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']