Files
@ 4f2976a9d444
Branch filter:
Location: rattail-project/rattail/tests/db/test_util.py - annotation
4f2976a9d444
2.1 KiB
text/x-python
update changelog
0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 0c13de51b8e0 |
from unittest import TestCase
from sqlalchemy.pool import SingletonThreadPool, NullPool
from edbob.configuration import AppConfigParser
from rattail.db import util
class TestEngineConfig(TestCase):
def test_standard(self):
config = {
'sqlalchemy.url': 'sqlite://',
}
engine = util.engine_from_config(config)
self.assertEqual(str(engine.url), 'sqlite://')
self.assertTrue(isinstance(engine.pool, SingletonThreadPool))
def test_custom_poolclass(self):
config = {
'sqlalchemy.url': 'sqlite://',
'sqlalchemy.poolclass': 'sqlalchemy.pool:NullPool',
}
engine = util.engine_from_config(config)
self.assertEqual(str(engine.url), 'sqlite://')
self.assertTrue(isinstance(engine.pool, NullPool))
def test_get_engines_default(self):
config = AppConfigParser('rattail')
config.set('edbob.db', 'sqlalchemy.url', 'sqlite://')
engines = util.get_engines(config)
self.assertEqual(len(engines), 1)
self.assertEqual(str(engines['default'].url), 'sqlite://')
def test_get_engines_custom(self):
config = AppConfigParser('rattail')
config.set('edbob.db', 'keys', 'host, store')
config.set('edbob.db', 'host.url', 'sqlite:///rattail.host.sqlite')
config.set('edbob.db', 'store.url', 'sqlite:///rattail.store.sqlite')
config.set('edbob.db', 'store.poolclass', 'sqlalchemy.pool:SingletonThreadPool')
engines = util.get_engines(config)
self.assertEqual(len(engines), 2)
self.assertEqual(str(engines['host'].url), 'sqlite:///rattail.host.sqlite')
self.assertTrue(isinstance(engines['host'].pool, NullPool))
self.assertEqual(str(engines['store'].url), 'sqlite:///rattail.store.sqlite')
self.assertTrue(isinstance(engines['store'].pool, SingletonThreadPool))
def test_get_engines_none(self):
config = AppConfigParser('rattail')
config.set('edbob.db', 'unknown.url', 'sqlite://')
engines = util.get_engines(config)
self.assertEqual(len(engines), 0)
|