rendered paste bodyIndex: test/orm/collection.py
===================================================================
--- test/orm/collection.py (revision 3659)
+++ test/orm/collection.py (working copy)
@@ -274,10 +274,35 @@
self.assert_(e4 not in canary.data)
self.assert_(e3 in canary.data)
+ def _test_list_slice(self, typecallable, creator=entity_maker):
+ class Foo(object):
+ pass
+ canary = Canary()
+ manager.register_class(Foo)
+ manager.register_attribute(Foo, 'attr', True, extension=canary,
+ typecallable=typecallable)
+
+ obj = Foo()
+ e1 = creator()
+ e2 = creator()
+ e3 = creator()
+ obj.attr = [e1, e2, e3]
+ assert e1 in canary.added
+ assert e2 in canary.added
+ assert e3 in canary.added
+
+ obj.attr = obj.attr[1:]
+ assert e1 in canary.removed
+ assert e2 in canary.added
+ assert e3 in canary.added
+ assert e2 not in canary.removed
+ assert e3 not in canary.removed
+
def test_list(self):
self._test_adapter(list)
self._test_list(list)
self._test_list_bulk(list)
+ self._test_list_slice(list)
def test_list_subclass(self):
class MyList(list):