test: add 'nodb' test runner
ensure things work as expected if sqlalchemy is not installed
This commit is contained in:
parent
132073177c
commit
f5825e964c
5 changed files with 193 additions and 148 deletions
|
@ -5,12 +5,10 @@ import os
|
|||
from unittest import TestCase
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
import sqlalchemy as sa
|
||||
import pytest
|
||||
|
||||
from wuttjamaican import conf
|
||||
from wuttjamaican.exc import ConfigurationError
|
||||
from wuttjamaican.db import Session
|
||||
from wuttjamaican.db.conf import make_engine_from_config
|
||||
from wuttjamaican.app import AppHandler
|
||||
from wuttjamaican.testing import FileConfigTestCase
|
||||
|
||||
|
@ -133,6 +131,13 @@ require = %(here)s/first.conf
|
|||
self.assertEqual(config.get('foo'), 'bar')
|
||||
|
||||
def test_constructor_db_flags(self):
|
||||
try:
|
||||
# nb. we don't need this import but the test will not
|
||||
# behave correctly unless the lib is installed
|
||||
import sqlalchemy
|
||||
except ImportError:
|
||||
pytest.skip("test is not relevant without sqlalchemy")
|
||||
|
||||
myfile = self.write_file('my.conf', """\
|
||||
[wutta.config]
|
||||
usedb = true
|
||||
|
@ -155,6 +160,12 @@ preferdb = true
|
|||
self.assertTrue(config.preferdb)
|
||||
|
||||
def test_constructor_db_not_supported(self):
|
||||
try:
|
||||
# nb. we don't need this import but the test will not
|
||||
# behave correctly unless the lib is installed
|
||||
import sqlalchemy
|
||||
except ImportError:
|
||||
pytest.skip("test is not relevant without sqlalchemy")
|
||||
|
||||
# flags are off by default
|
||||
config = conf.WuttaConfig()
|
||||
|
@ -269,6 +280,12 @@ configure_logging = true
|
|||
self.assertEqual(config.get('foo', default='bar'), 'bar')
|
||||
|
||||
def test_get_from_db(self):
|
||||
try:
|
||||
import sqlalchemy as sa
|
||||
from wuttjamaican.db import Session
|
||||
except ImportError:
|
||||
pytest.skip("test is not relevant without sqlalchemy")
|
||||
|
||||
# minimal config, but at least it needs db cxn info
|
||||
config = conf.WuttaConfig(defaults={'wutta.db.default.url': 'sqlite://'})
|
||||
|
||||
|
@ -317,6 +334,11 @@ configure_logging = true
|
|||
self.assertIn("makin stuff up", str(error))
|
||||
|
||||
def test_get_preferdb(self):
|
||||
try:
|
||||
import sqlalchemy as sa
|
||||
from wuttjamaican.db import Session
|
||||
except ImportError:
|
||||
pytest.skip("test is not relevant without sqlalchemy")
|
||||
|
||||
# start out with a default value
|
||||
config = conf.WuttaConfig(defaults={'wutta.db.default.url': 'sqlite://',
|
||||
|
@ -403,6 +425,10 @@ configure_logging = true
|
|||
self.assertIsInstance(app, CustomAppHandler)
|
||||
|
||||
def test_get_engine_maker(self):
|
||||
try:
|
||||
from wuttjamaican.db.conf import make_engine_from_config
|
||||
except ImportError:
|
||||
pytest.skip("test is not relevant without sqlalchemy")
|
||||
|
||||
# default func
|
||||
config = conf.WuttaConfig()
|
||||
|
@ -421,7 +447,7 @@ class CustomAppHandler(AppHandler):
|
|||
pass
|
||||
|
||||
|
||||
def custom_make_engine_from_config(*args, **kwargs):
|
||||
def custom_make_engine_from_config():
|
||||
pass
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue