Add make_engine_from_config()
method for AppHandler
and other misc. tweaks needed to get this incorporated into Rattail
This commit is contained in:
parent
afd2d005a3
commit
b458272207
8 changed files with 177 additions and 91 deletions
|
@ -5,6 +5,8 @@ from unittest.mock import patch, MagicMock
|
|||
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import orm
|
||||
from sqlalchemy.engine import Engine
|
||||
from sqlalchemy.pool import NullPool
|
||||
|
||||
from wuttjamaican import app, db
|
||||
|
||||
|
@ -19,6 +21,38 @@ class TestAppHandler(TestCase):
|
|||
self.assertIs(self.app.config, self.config)
|
||||
self.assertEqual(self.app.handlers, {})
|
||||
|
||||
def test_make_engine_from_config_basic(self):
|
||||
engine = self.app.make_engine_from_config({
|
||||
'sqlalchemy.url': 'sqlite://',
|
||||
})
|
||||
self.assertIsInstance(engine, Engine)
|
||||
|
||||
def test_make_engine_from_config_poolclass(self):
|
||||
|
||||
engine = self.app.make_engine_from_config({
|
||||
'sqlalchemy.url': 'sqlite://',
|
||||
})
|
||||
self.assertNotIsInstance(engine.pool, NullPool)
|
||||
|
||||
engine = self.app.make_engine_from_config({
|
||||
'sqlalchemy.url': 'sqlite://',
|
||||
'sqlalchemy.poolclass': 'sqlalchemy.pool:NullPool',
|
||||
})
|
||||
self.assertIsInstance(engine.pool, NullPool)
|
||||
|
||||
def test_make_engine_from_config_pool_pre_ping(self):
|
||||
|
||||
engine = self.app.make_engine_from_config({
|
||||
'sqlalchemy.url': 'sqlite://',
|
||||
})
|
||||
self.assertFalse(engine.pool._pre_ping)
|
||||
|
||||
engine = self.app.make_engine_from_config({
|
||||
'sqlalchemy.url': 'sqlite://',
|
||||
'sqlalchemy.pool_pre_ping': 'true',
|
||||
})
|
||||
self.assertTrue(engine.pool._pre_ping)
|
||||
|
||||
def test_make_session(self):
|
||||
session = self.app.make_session()
|
||||
self.assertIsInstance(session, db.Session.class_)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue