summaryrefslogtreecommitdiff
path: root/test/orm/test_collection.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/test_collection.py')
-rw-r--r--test/orm/test_collection.py63
1 files changed, 43 insertions, 20 deletions
diff --git a/test/orm/test_collection.py b/test/orm/test_collection.py
index c9f9f6951..f94c742b3 100644
--- a/test/orm/test_collection.py
+++ b/test/orm/test_collection.py
@@ -128,9 +128,9 @@ class CollectionsTest(fixtures.ORMTest):
control = list()
def assert_eq():
- self.assert_(set(direct) == canary.data)
- self.assert_(set(adapter) == canary.data)
- self.assert_(direct == control)
+ eq_(set(direct), canary.data)
+ eq_(set(adapter), canary.data)
+ eq_(direct, control)
# assume append() is available for list tests
e = creator()
@@ -260,6 +260,11 @@ class CollectionsTest(fixtures.ORMTest):
control[-2:-1] = values
assert_eq()
+ values = [creator()]
+ direct[0:0] = values
+ control[0:0] = values
+ assert_eq()
+
if hasattr(direct, '__delitem__') or hasattr(direct, '__delslice__'):
for i in range(1, 4):
@@ -279,6 +284,16 @@ class CollectionsTest(fixtures.ORMTest):
del control[:]
assert_eq()
+ if hasattr(direct, 'clear'):
+ for i in range(1, 4):
+ e = creator()
+ direct.append(e)
+ control.append(e)
+
+ direct.clear()
+ control.clear()
+ assert_eq()
+
if hasattr(direct, 'extend'):
values = [creator(), creator(), creator()]
@@ -499,9 +514,9 @@ class CollectionsTest(fixtures.ORMTest):
control = set()
def assert_eq():
- self.assert_(set(direct) == canary.data)
- self.assert_(set(adapter) == canary.data)
- self.assert_(direct == control)
+ eq_(set(direct), canary.data)
+ eq_(set(adapter), canary.data)
+ eq_(direct, control)
def addall(*values):
for item in values:
@@ -519,10 +534,6 @@ class CollectionsTest(fixtures.ORMTest):
addall(e)
addall(e)
- if hasattr(direct, 'pop'):
- direct.pop()
- control.pop()
- assert_eq()
if hasattr(direct, 'remove'):
e = creator()
@@ -593,11 +604,19 @@ class CollectionsTest(fixtures.ORMTest):
except TypeError:
assert True
- if hasattr(direct, 'clear'):
- addall(creator(), creator())
- direct.clear()
- control.clear()
- assert_eq()
+ addall(creator(), creator())
+ direct.clear()
+ control.clear()
+ assert_eq()
+
+ # note: the clear test previously needs
+ # to have executed in order for this to
+ # pass in all cases; else there's the possibility
+ # of non-deterministic behavior.
+ addall(creator())
+ direct.pop()
+ control.pop()
+ assert_eq()
if hasattr(direct, 'difference_update'):
zap()
@@ -739,6 +758,7 @@ class CollectionsTest(fixtures.ORMTest):
except TypeError:
assert True
+
def _test_set_bulk(self, typecallable, creator=None):
if creator is None:
creator = self.entity_maker
@@ -809,6 +829,8 @@ class CollectionsTest(fixtures.ORMTest):
self.data.remove(item)
def discard(self, item):
self.data.discard(item)
+ def clear(self):
+ self.data.clear()
def pop(self):
return self.data.pop()
def update(self, other):
@@ -841,6 +863,8 @@ class CollectionsTest(fixtures.ORMTest):
self.data.update(other)
def __iter__(self):
return iter(self.data)
+ def clear(self):
+ self.data.clear()
__hash__ = object.__hash__
def __eq__(self, other):
return self.data == other
@@ -967,11 +991,10 @@ class CollectionsTest(fixtures.ORMTest):
control.update(d)
assert_eq()
- if sys.version_info >= (2, 4):
- kw = dict([(ee.a, ee) for ee in [e, creator()]])
- direct.update(**kw)
- control.update(**kw)
- assert_eq()
+ kw = dict([(ee.a, ee) for ee in [e, creator()]])
+ direct.update(**kw)
+ control.update(**kw)
+ assert_eq()
def _test_dict_bulk(self, typecallable, creator=None):
if creator is None: