Author: phd
Date: 2005-02-21 16:50:34 +0000 (Mon, 21 Feb 2005)
New Revision: 634
Added:
trunk/SQLObject/sqlobject/tests/test_parse.py
Modified:
trunk/SQLObject/sqlobject/sqlite/sqliteconnection.py
Log:
Fixed a bug in sqlite connection - allow in-memory database with sqlite:/:memory: URI.
Added tests for _parseURI.
Modified: trunk/SQLObject/sqlobject/sqlite/sqliteconnection.py
===================================================================
--- trunk/SQLObject/sqlobject/sqlite/sqliteconnection.py 2005-02-21 13:39:55 UTC (rev 633)
+++ trunk/SQLObject/sqlobject/sqlite/sqliteconnection.py 2005-02-21 16:50:34 UTC (rev 634)
@@ -29,6 +29,7 @@
assert user is None and password is None, (
"You may not provide usernames or passwords for SQLite "
"databases")
+ if path == "/:memory:": path = ":memory:"
return cls(filename=path, **args)
connectionFromURI = classmethod(connectionFromURI)
Added: trunk/SQLObject/sqlobject/tests/test_parse.py
===================================================================
--- trunk/SQLObject/sqlobject/tests/test_parse.py 2005-02-21 13:39:55 UTC (rev 633)
+++ trunk/SQLObject/sqlobject/tests/test_parse.py 2005-02-21 16:50:34 UTC (rev 634)
@@ -0,0 +1,50 @@
+from sqlobject.dbconnection import DBConnection
+
+########################################
+## Test _parseURI
+########################################
+
+def test_parse():
+ _parseURI = DBConnection._parseURI
+
+ user, password, host, path, args = _parseURI("mysql://user:passwd@host/database")
+ assert user == "user"
+ assert password == "passwd"
+ assert host == "host"
+ assert path == "/database"
+ assert args == {}
+
+ user, password, host, path, args = _parseURI("mysql://host/database")
+ assert user == None
+ assert password == None
+ assert host == "host"
+ assert path == "/database"
+ assert args == {}
+
+ user, password, host, path, args = _parseURI("postgres://user@host/database")
+ assert user == "user"
+ assert password == None
+ assert host == "host"
+ assert path == "/database"
+ assert args == {}
+
+ user, password, host, path, args = _parseURI("postgres://host:5432/database")
+ assert user == None
+ assert password == None
+ assert host == "host:5432"
+ assert path == "/database"
+ assert args == {}
+
+ user, password, host, path, args = _parseURI("sqlite:///full/path/to/database")
+ assert user == None
+ assert password == None
+ assert host == None
+ assert path == "/full/path/to/database"
+ assert args == {}
+
+ user, password, host, path, args = _parseURI("sqlite:/:memory:")
+ assert user == None
+ assert password == None
+ assert host == None
+ assert path == "/:memory:"
+ assert args == {}
|