Author: phd
Date: 2009-10-16 06:40:05 -0600 (Fri, 16 Oct 2009)
New Revision: 4037
Modified:
SQLObject/branches/0.12/sqlobject/main.py
SQLObject/branches/0.12/sqlobject/sqlbuilder.py
SQLObject/branches/0.12/sqlobject/tests/test_select.py
Log:
Fixed a bug in calling column.from_python.
Modified: SQLObject/branches/0.12/sqlobject/main.py
===================================================================
--- SQLObject/branches/0.12/sqlobject/main.py 2009-10-16 12:35:22 UTC (rev 4036)
+++ SQLObject/branches/0.12/sqlobject/main.py 2009-10-16 12:40:05 UTC (rev 4037)
@@ -889,7 +889,7 @@
if val is None:
try:
val = cls(_SO_fetch_no_create=1)
- val._SO_validatorState = SQLObjectState(val)
+ val._SO_validatorState = sqlbuilder.SQLObjectState(val)
val._init(id, connection, selectResults)
cache.put(id, cls, val)
finally:
@@ -1237,7 +1237,7 @@
self.sqlmeta._creating = True
self._SO_createValues = {}
- self._SO_validatorState = SQLObjectState(self)
+ self._SO_validatorState = sqlbuilder.SQLObjectState(self)
# First we do a little fix-up on the keywords we were
# passed:
@@ -1686,13 +1686,6 @@
return '_SO_val_%s' % name
-class SQLObjectState(object):
-
- def __init__(self, soObject):
- self.soObject = weakref.proxy(soObject)
- self.protocol = 'sql'
-
-
########################################
## Utility functions (for external consumption)
########################################
Modified: SQLObject/branches/0.12/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/branches/0.12/sqlobject/sqlbuilder.py 2009-10-16 12:35:22 UTC (rev 4036)
+++ SQLObject/branches/0.12/sqlobject/sqlbuilder.py 2009-10-16 12:40:05 UTC (rev 4037)
@@ -62,19 +62,28 @@
## Constants
########################################
+import fnmatch
+import operator
+import re
+import threading
+import types
+import weakref
+
+import classregistry
+from converters import sqlrepr, registerConverter
+
+
class VersionError(Exception):
pass
class NoDefault:
pass
-import re, fnmatch
-import operator
-import threading
-import types
-import classregistry
-from converters import sqlrepr, registerConverter
+class SQLObjectState(object):
+ def __init__(self, soObject):
+ self.soObject = weakref.proxy(soObject)
+
safeSQLRE = re.compile(r'^[a-zA-Z_][a-zA-Z0-9_\.]*$')
def sqlIdentifier(obj):
# some db drivers return unicode column names
@@ -329,7 +338,7 @@
def _from_python(self, value):
column = self.column
if not isinstance(value, SQLExpression) and column and column.from_python:
- value = column.from_python(value, self.soClass)
+ value = column.from_python(value, SQLObjectState(self.soClass))
return value
def __eq__(self, other):
if other is None:
Modified: SQLObject/branches/0.12/sqlobject/tests/test_select.py
===================================================================
--- SQLObject/branches/0.12/sqlobject/tests/test_select.py 2009-10-16 12:35:22 UTC (rev 4036)
+++ SQLObject/branches/0.12/sqlobject/tests/test_select.py 2009-10-16 12:40:05 UTC (rev 4037)
@@ -184,3 +184,8 @@
assert IterTest.select(RLIKE(IterTest.q.name, "^sqlb.*$")).count() == 1
assert IterTest.select(RLIKE(IterTest.q.name, "^sqlb.*$")).count() == 1
assert IterTest.select(RLIKE(IterTest.q.name, "^sqlx.*$")).count() == 0
+
+def test_select_sqlbuilder():
+ setupClass(IterTest)
+ IterTest(name='sqlobject')
+ IterTest.select(IterTest.q.name==u'sqlobject')
|