diff --git a/pyproject.toml b/pyproject.toml index 6d57724..9b1b077 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ classifiers = [ license = {text = "GNU General Public License v3+"} requires-python = ">= 3.8" dependencies = [ - "Sideshow>=0.6.0", + "Sideshow>=0.7.1", "Wutta-COREPOS[web]>=0.3.0", ] diff --git a/src/sideshow_corepos/web/app.py b/src/sideshow_corepos/web/app.py index 6f4e327..e249760 100644 --- a/src/sideshow_corepos/web/app.py +++ b/src/sideshow_corepos/web/app.py @@ -44,7 +44,8 @@ def main(global_config, **settings): pyramid_config = base.make_pyramid_config(settings) # configure DB sessions - CoreOpSession.configure(bind=wutta_config.core_office_op_engine) + if hasattr(wutta_config, 'core_office_op_engine'): + CoreOpSession.configure(bind=wutta_config.core_office_op_engine) # bring in the rest of Sideshow pyramid_config.include('sideshow.web') @@ -53,15 +54,15 @@ def main(global_config, **settings): return pyramid_config.make_wsgi_app() -def make_wsgi_app(): +def make_wsgi_app(config=None): """ Make and return the WSGI app (generic entry point). """ - return base.make_wsgi_app(main) + return base.make_wsgi_app(main, config=config) -def make_asgi_app(): +def make_asgi_app(config=None): """ Make and return the ASGI app (generic entry point). """ - return base.make_asgi_app(main) + return base.make_asgi_app(main, config=config) diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..5ad7a3b --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8; -*- + +from wuttjamaican.testing import ConfigTestCase + +from sideshow_corepos import config as mod + + +class TestSideshowCoreposConfig(ConfigTestCase): + + def test_basic(self): + + self.assertIsNone(self.config.get('wutta.batch.neworder.handler.spec')) + + ext = mod.SideshowCoreposConfig() + ext.configure(self.config) + + self.assertEqual(self.config.get('wutta.batch.neworder.handler.spec'), + 'sideshow_corepos.batch.neworder:NewOrderBatchHandler') diff --git a/tests/web/test_app.py b/tests/web/test_app.py index 1b4790e..d7f900c 100644 --- a/tests/web/test_app.py +++ b/tests/web/test_app.py @@ -1,32 +1,44 @@ # -*- coding: utf-8; -*- -from wuttjamaican.testing import FileTestCase, ConfigTestCase +import sqlalchemy as sa + +from wuttjamaican.testing import DataTestCase from asgiref.wsgi import WsgiToAsgi from pyramid.router import Router +from wutta_corepos.web.db import CoreOpSession + from sideshow_corepos.web import app as mod -class TestMain(FileTestCase): +class TestMain(DataTestCase): def test_basic(self): global_config = None - myconf = self.write_file('my.conf', '') - settings = {'wutta.config': myconf} + settings = {'wutta_config': self.config} app = mod.main(global_config, **settings) self.assertIsInstance(app, Router) + self.assertIsNone(CoreOpSession.session_factory.kw['bind']) + + def test_corepos_engine(self): + engine = sa.create_engine('sqlite://') + self.config.core_office_op_engine = engine + settings = {'wutta_config': self.config} + app = mod.main(None, **settings) + self.assertIsInstance(app, Router) + self.assertIs(CoreOpSession.session_factory.kw['bind'], engine) -class TestMakeWsgiApp(ConfigTestCase): +class TestMakeWsgiApp(DataTestCase): def test_basic(self): - wsgi = mod.make_wsgi_app() + wsgi = mod.make_wsgi_app(config=self.config) self.assertIsInstance(wsgi, Router) -class TestMakeAsgiApp(ConfigTestCase): +class TestMakeAsgiApp(DataTestCase): def test_basic(self): - asgi = mod.make_asgi_app() + asgi = mod.make_asgi_app(config=self.config) self.assertIsInstance(asgi, WsgiToAsgi)