Author: phd
Date: 2006-09-04 09:19:02 -0600 (Mon, 04 Sep 2006)
New Revision: 1900
Modified:
home/phd/SQLObject/paramstyles/sqlobject/main.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_unicode.py
Log:
Merged patches from the revisions 1895:1899 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/main.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/main.py 2006-09-04 15:17:56 UTC (rev 1899)
+++ home/phd/SQLObject/paramstyles/sqlobject/main.py 2006-09-04 15:19:02 UTC (rev 1900)
@@ -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: home/phd/SQLObject/paramstyles/sqlobject/tests/test_unicode.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_unicode.py 2006-09-04 15:17:56 UTC (rev 1899)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_unicode.py 2006-09-04 15:19:02 UTC (rev 1900)
@@ -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'
|