[SQL-CVS] r1896 - in SQLObject/trunk/sqlobject: . tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2006-09-04 15:01:22
|
Author: phd
Date: 2006-09-04 09:01:13 -0600 (Mon, 04 Sep 2006)
New Revision: 1896
Modified:
SQLObject/trunk/sqlobject/main.py
SQLObject/trunk/sqlobject/tests/test_unicode.py
Log:
Extended unicode patch to the .byName() case where "name" is an alternateID.
Modified: SQLObject/trunk/sqlobject/main.py
===================================================================
--- SQLObject/trunk/sqlobject/main.py 2006-09-01 13:14:02 UTC (rev 1895)
+++ SQLObject/trunk/sqlobject/main.py 2006-09-04 15:01:13 UTC (rev 1896)
@@ -1279,10 +1279,14 @@
return getID(obj)
def _findAlternateID(cls, name, dbName, value, connection=None):
+ for key, column in cls.sqlmeta.columns.items():
+ if (key == name) and isinstance(column, col.SOUnicodeCol):
+ if isinstance(value, unicode):
+ value = value.encode(column.dbEncoding)
return (connection or cls._connection)._SO_selectOneAlt(
cls,
[cls.sqlmeta.idName] +
- [col.dbName for col in cls.sqlmeta.columnList],
+ [column.dbName for column in cls.sqlmeta.columnList],
dbName,
value), None
_findAlternateID = classmethod(_findAlternateID)
Modified: SQLObject/trunk/sqlobject/tests/test_unicode.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_unicode.py 2006-09-01 13:14:02 UTC (rev 1895)
+++ SQLObject/trunk/sqlobject/tests/test_unicode.py 2006-09-04 15:01:13 UTC (rev 1896)
@@ -7,7 +7,7 @@
class TestUnicode(SQLObject):
count = IntCol(alternateID=True)
- col1 = UnicodeCol()
+ col1 = UnicodeCol(alternateID=True)
col2 = UnicodeCol(dbEncoding='latin-1')
try:
@@ -44,7 +44,7 @@
def test_select():
setup()
- for value in data:
+ for i, value in enumerate(data):
rows = list(TestUnicode.select(TestUnicode.q.col1 == value))
assert len(rows) == 1
rows = list(TestUnicode.select(TestUnicode.q.col2 == value))
@@ -60,6 +60,8 @@
assert len(rows) == 1
rows = list(TestUnicode.selectBy(col1=value, col2=value))
assert len(rows) == 1
+ row = TestUnicode.byCol1(value)
+ assert row.count == i
rows = list(TestUnicode.select(OR(
TestUnicode.q.col1 == u'\u00f0',
TestUnicode.q.col2 == u'test'
|