diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-08-29 23:17:36 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-08-29 23:17:36 +0000 |
commit | 3d9d21cc14982654cadd7678d44e14df62d812d2 (patch) | |
tree | feb1d7667d322b80828c6766802f90547fb48774 /test/engine/parseconnect.py | |
parent | 83d05aa5aff0b27027fb10986390d898a3153eb2 (diff) | |
download | sqlalchemy-3d9d21cc14982654cadd7678d44e14df62d812d2.tar.gz |
Extended 'engine_from_config' coercion for QueuePool size / overflow. [ticket:763]
Added a set of coercion tests.
Diffstat (limited to 'test/engine/parseconnect.py')
-rw-r--r-- | test/engine/parseconnect.py | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/test/engine/parseconnect.py b/test/engine/parseconnect.py index 157afeb2f..5bf9512fb 100644 --- a/test/engine/parseconnect.py +++ b/test/engine/parseconnect.py @@ -1,6 +1,7 @@ import testbase +import ConfigParser, StringIO from sqlalchemy import * -from sqlalchemy import exceptions, pool +from sqlalchemy import exceptions, pool, engine import sqlalchemy.engine.url as url from testlib import * @@ -52,12 +53,56 @@ class CreateEngineTest(PersistTest): e = create_engine('postgres://scott:tiger@somehost/test?fooz=somevalue', connect_args={'foober':12, 'lala':18, 'hoho':{'this':'dict'}}, module=dbapi) c = e.connect() + def test_coerce_config(self): + raw = r""" +[prefixed] +sqlalchemy.url=postgres://scott:tiger@somehost/test?fooz=somevalue +sqlalchemy.convert_unicode=0 +sqlalchemy.echo=0 +sqlalchemy.echo_pool=1 +sqlalchemy.max_overflow=2 +sqlalchemy.pool_recycle=50 +sqlalchemy.pool_size=2 +sqlalchemy.pool_threadlocal=1 +sqlalchemy.pool_timeout=10 +[plain] +url=postgres://scott:tiger@somehost/test?fooz=somevalue +convert_unicode=0 +echo=0 +echo_pool=1 +max_overflow=2 +pool_recycle=50 +pool_size=2 +pool_threadlocal=1 +pool_timeout=10 +""" + ini = ConfigParser.ConfigParser() + ini.readfp(StringIO.StringIO(raw)) + + expected = { + 'url': 'postgres://scott:tiger@somehost/test?fooz=somevalue', + 'convert_unicode': 0, + 'echo': False, + 'echo_pool': True, + 'max_overflow': 2, + 'pool_recycle': 50, + 'pool_size': 2, + 'pool_threadlocal': True, + 'pool_timeout': 10, + } + + prefixed = dict(ini.items('prefixed')) + self.assert_(engine._coerce_config(prefixed, 'sqlalchemy.') == expected) + + plain = dict(ini.items('plain')) + self.assert_(engine._coerce_config(plain, '') == expected) + def test_engine_from_config(self): dbapi = MockDBAPI() config = { 'sqlalchemy.url':'postgres://scott:tiger@somehost/test?fooz=somevalue', - 'sqlalchemy.pool_recycle':50 + 'sqlalchemy.pool_recycle':'50' } e = engine_from_config(config, module=dbapi) |