summaryrefslogtreecommitdiff
path: root/test/base/utils.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-07-27 04:08:53 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-07-27 04:08:53 +0000
commited4fc64bb0ac61c27bc4af32962fb129e74a36bf (patch)
treec1cf2fb7b1cafced82a8898e23d2a0bf5ced8526 /test/base/utils.py
parent3a8e235af64e36b3b711df1f069d32359fe6c967 (diff)
downloadsqlalchemy-ed4fc64bb0ac61c27bc4af32962fb129e74a36bf.tar.gz
merging 0.4 branch to trunk. see CHANGES for details. 0.3 moves to maintenance branch in branches/rel_0_3.
Diffstat (limited to 'test/base/utils.py')
-rw-r--r--test/base/utils.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/test/base/utils.py b/test/base/utils.py
new file mode 100644
index 000000000..97f3db06f
--- /dev/null
+++ b/test/base/utils.py
@@ -0,0 +1,67 @@
+import testbase
+from sqlalchemy import util, column, sql, exceptions
+from testlib import *
+
+
+class OrderedDictTest(PersistTest):
+ def test_odict(self):
+ o = util.OrderedDict()
+ o['a'] = 1
+ o['b'] = 2
+ o['snack'] = 'attack'
+ o['c'] = 3
+
+ self.assert_(o.keys() == ['a', 'b', 'snack', 'c'])
+ self.assert_(o.values() == [1, 2, 'attack', 3])
+
+ o.pop('snack')
+
+ self.assert_(o.keys() == ['a', 'b', 'c'])
+ self.assert_(o.values() == [1, 2, 3])
+
+ o2 = util.OrderedDict(d=4)
+ o2['e'] = 5
+
+ self.assert_(o2.keys() == ['d', 'e'])
+ self.assert_(o2.values() == [4, 5])
+
+ o.update(o2)
+ self.assert_(o.keys() == ['a', 'b', 'c', 'd', 'e'])
+ self.assert_(o.values() == [1, 2, 3, 4, 5])
+
+ o.setdefault('c', 'zzz')
+ o.setdefault('f', 6)
+ self.assert_(o.keys() == ['a', 'b', 'c', 'd', 'e', 'f'])
+ self.assert_(o.values() == [1, 2, 3, 4, 5, 6])
+
+class ColumnCollectionTest(PersistTest):
+ def test_in(self):
+ cc = sql.ColumnCollection()
+ cc.add(column('col1'))
+ cc.add(column('col2'))
+ cc.add(column('col3'))
+ assert 'col1' in cc
+ assert 'col2' in cc
+
+ try:
+ cc['col1'] in cc
+ assert False
+ except exceptions.ArgumentError, e:
+ assert str(e) == "__contains__ requires a string argument"
+
+ def test_compare(self):
+ cc1 = sql.ColumnCollection()
+ cc2 = sql.ColumnCollection()
+ cc3 = sql.ColumnCollection()
+ c1 = column('col1')
+ c2 = c1.label('col2')
+ c3 = column('col3')
+ cc1.add(c1)
+ cc2.add(c2)
+ cc3.add(c3)
+ assert (cc1==cc2).compare(c1 == c2)
+ assert not (cc1==cc3).compare(c2 == c3)
+
+
+if __name__ == "__main__":
+ testbase.main()