summaryrefslogtreecommitdiff
path: root/test/base/utils.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-12-18 17:57:15 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-12-18 17:57:15 +0000
commitbe5d3263436b81fb179c8189f1064d477d5fb3e6 (patch)
tree7f99d53445ef85d4bce4fcf6b5e244779cbcde1c /test/base/utils.py
parent98d7d70674b443d1691971926af1b1db4d7101dc (diff)
downloadsqlalchemy-be5d3263436b81fb179c8189f1064d477d5fb3e6.tar.gz
merged -r5299:5438 of py3k warnings branch. this fixes some sqlite py2.6 testing issues,
and also addresses a significant chunk of py3k deprecations. It's mainly expicit __hash__ methods. Additionally, most usage of sets/dicts to store columns uses util-based placeholder names.
Diffstat (limited to 'test/base/utils.py')
-rw-r--r--test/base/utils.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/base/utils.py b/test/base/utils.py
index c3d026f04..0add6dd66 100644
--- a/test/base/utils.py
+++ b/test/base/utils.py
@@ -116,6 +116,7 @@ class HashOverride(object):
class EqOverride(object):
def __init__(self, value=None):
self.value = value
+ __hash__ = object.__hash__
def __eq__(self, other):
if isinstance(other, EqOverride):
return self.value == other.value
@@ -260,6 +261,32 @@ class IdentitySetTest(unittest.TestCase):
self.assertRaises(TypeError, lambda: s1 - os2)
self.assertRaises(TypeError, lambda: s1 - [3, 4, 5])
+class OrderedIdentitySetTest(unittest.TestCase):
+
+ def assert_eq(self, identityset, expected_iterable):
+ expected = [id(o) for o in expected_iterable]
+ found = [id(o) for o in identityset]
+ eq_(found, expected)
+
+ def test_add(self):
+ elem = object
+ s = util.OrderedIdentitySet()
+ s.add(elem())
+ s.add(elem())
+
+ def test_intersection(self):
+ elem = object
+ eq_ = self.assert_eq
+
+ a, b, c, d, e, f, g = elem(), elem(), elem(), elem(), elem(), elem(), elem()
+
+ s1 = util.OrderedIdentitySet([a, b, c])
+ s2 = util.OrderedIdentitySet([d, e, f])
+ s3 = util.OrderedIdentitySet([a, d, f, g])
+ eq_(s1.intersection(s2), [])
+ eq_(s1.intersection(s3), [a])
+ eq_(s1.union(s2).intersection(s3), [a, d, f])
+
class DictlikeIteritemsTest(unittest.TestCase):
baseline = set([('a', 1), ('b', 2), ('c', 3)])