summaryrefslogtreecommitdiff
path: root/test/engine/parseconnect.py
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-08-29 23:17:36 +0000
committerJason Kirtland <jek@discorporate.us>2007-08-29 23:17:36 +0000
commit3d9d21cc14982654cadd7678d44e14df62d812d2 (patch)
treefeb1d7667d322b80828c6766802f90547fb48774 /test/engine/parseconnect.py
parent83d05aa5aff0b27027fb10986390d898a3153eb2 (diff)
downloadsqlalchemy-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.py49
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)