Files
@ d692803d75b4
Branch filter:
Location: rattail-project/rattail/tests/db/test_util.py - annotation
d692803d75b4
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)
|