Author: phd
Date: 2007-02-06 08:39:04 -0700 (Tue, 06 Feb 2007)
New Revision: 2260
Modified:
SQLObject/branches/0.8/sqlobject/converters.py
SQLObject/branches/0.8/sqlobject/tests/test_converters.py
Log:
A patch by Dan Pascu <da...@ag...> - allows to use set/frozenset sets/Set/ImmutableSet
sets as sequences passed to the IN operator.
Modified: SQLObject/branches/0.8/sqlobject/converters.py
===================================================================
--- SQLObject/branches/0.8/sqlobject/converters.py 2007-02-06 15:38:47 UTC (rev 2259)
+++ SQLObject/branches/0.8/sqlobject/converters.py 2007-02-06 15:39:04 UTC (rev 2260)
@@ -180,6 +180,21 @@
registerConverter(type(()), SequenceConverter)
registerConverter(type([]), SequenceConverter)
+registerConverter(type({}), SequenceConverter)
+try:
+ set, frozenset
+except NameError:
+ pass
+else:
+ registerConverter(set, SequenceConverter)
+ registerConverter(frozenset, SequenceConverter)
+try:
+ from sets import Set, ImmutableSet
+except ImportError:
+ pass
+else:
+ registerConverter(Set, SequenceConverter)
+ registerConverter(ImmutableSet, SequenceConverter)
if hasattr(time, 'struct_time'):
def StructTimeConverter(value, db):
Modified: SQLObject/branches/0.8/sqlobject/tests/test_converters.py
===================================================================
--- SQLObject/branches/0.8/sqlobject/tests/test_converters.py 2007-02-06 15:38:47 UTC (rev 2259)
+++ SQLObject/branches/0.8/sqlobject/tests/test_converters.py 2007-02-06 15:39:04 UTC (rev 2260)
@@ -176,3 +176,20 @@
def test_prefix():
instance = SQLPrefix('test', 'test')
assert sqlrepr(instance, 'mysql') == "test 'test'"
+
+def test_dict():
+ assert sqlrepr({"key": "value"}, "sqlite") == "('key')"
+
+def test_sets():
+ try:
+ set
+ except NameError:
+ pass
+ else:
+ assert sqlrepr(set([1])) == "(1)"
+ try:
+ from sets import Set
+ except ImportError:
+ pass
+ else:
+ assert sqlrepr(Set([1])) == "(1)"
|