diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-12-18 17:57:15 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-12-18 17:57:15 +0000 |
commit | be5d3263436b81fb179c8189f1064d477d5fb3e6 (patch) | |
tree | 7f99d53445ef85d4bce4fcf6b5e244779cbcde1c /test/base/utils.py | |
parent | 98d7d70674b443d1691971926af1b1db4d7101dc (diff) | |
download | sqlalchemy-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.py | 27 |
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)]) |