3
0
Fork 0

test: add 'nodb' test runner

ensure things work as expected if sqlalchemy is not installed
This commit is contained in:
Lance Edgar 2024-07-04 08:00:42 -05:00
parent 132073177c
commit f5825e964c
5 changed files with 193 additions and 148 deletions

View file

@ -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