def test_pop_success(self): from substanced.interfaces import IObjectEvent from substanced.interfaces import IObjectRemoved from substanced.interfaces import IObjectWillBeRemoved dummy = DummyModel() dummy.__parent__ = None dummy.__name__ = None events = [] def listener(event, obj, container): events.append(event) self._registerEventListener(listener, IObjectEvent) folder = self._makeOne({"a": dummy}) result = folder.pop("a") self.assertEqual(result, dummy) self.assertEqual(folder._num_objects(), 0) self.assertEqual(len(events), 2) self.assertTrue(IObjectWillBeRemoved.providedBy(events[0])) self.assertTrue(IObjectRemoved.providedBy(events[1])) self.assertEqual(events[0].object, dummy) self.assertEqual(events[0].parent, folder) self.assertEqual(events[0].name, "a") self.assertEqual(events[1].object, dummy) self.assertEqual(events[1].parent, folder) self.assertEqual(events[1].name, "a") self.assertFalse(hasattr(dummy, "__parent__")) self.assertFalse(hasattr(dummy, "__name__"))
def test_remove_moving(self): from substanced.interfaces import IObjectEvent from substanced.interfaces import IObjectRemoved from substanced.interfaces import IObjectWillBeRemoved events = [] def listener(event, obj, container): events.append(event) # pragma NO COVER self._registerEventListener(listener, IObjectEvent) dummy = DummyModel() dummy.__parent__ = None dummy.__name__ = None folder = self._makeOne({"a": dummy}) self.assertEqual(folder._num_objects(), 1) folder.remove("a", moving=True) self.assertEqual(folder._num_objects(), 0) self.assertFalse(hasattr(dummy, "__parent__")) self.assertFalse(hasattr(dummy, "__name__")) self.assertEqual(len(events), 2) self.assertTrue(IObjectWillBeRemoved.providedBy(events[0])) self.assertTrue(IObjectRemoved.providedBy(events[1])) self.assertEqual(events[0].object, dummy) self.assertEqual(events[0].parent, folder) self.assertEqual(events[0].name, "a") self.assertTrue(events[0].moving) self.assertEqual(events[1].object, dummy) self.assertEqual(events[1].parent, folder) self.assertEqual(events[1].name, "a") self.assertTrue(events[1].moving)
def test_remove_moving(self): from substanced.interfaces import IObjectEvent from substanced.interfaces import IObjectRemoved from substanced.interfaces import IObjectWillBeRemoved events = [] def listener(event, obj, container): events.append(event) #pragma NO COVER self._registerEventListener(listener, IObjectEvent) dummy = DummyModel() dummy.__parent__ = None dummy.__name__ = None folder = self._makeOne({'a': dummy}) self.assertEqual(folder._num_objects(), 1) folder.remove('a', moving=True) self.assertEqual(folder._num_objects(), 0) self.assertFalse(hasattr(dummy, '__parent__')) self.assertFalse(hasattr(dummy, '__name__')) self.assertEqual(len(events), 2) self.assertTrue(IObjectWillBeRemoved.providedBy(events[0])) self.assertTrue(IObjectRemoved.providedBy(events[1])) self.assertEqual(events[0].object, dummy) self.assertEqual(events[0].parent, folder) self.assertEqual(events[0].name, 'a') self.assertTrue(events[0].moving) self.assertEqual(events[1].object, dummy) self.assertEqual(events[1].parent, folder) self.assertEqual(events[1].name, 'a') self.assertTrue(events[1].moving)
def test_pop_success(self): from substanced.interfaces import IObjectEvent from substanced.interfaces import IObjectRemoved from substanced.interfaces import IObjectWillBeRemoved dummy = DummyModel() dummy.__parent__ = None dummy.__name__ = None events = [] def listener(event, obj, container): events.append(event) self._registerEventListener(listener, IObjectEvent) folder = self._makeOne({'a': dummy}) result = folder.pop('a') self.assertEqual(result, dummy) self.assertEqual(folder._num_objects(), 0) self.assertEqual(len(events), 2) self.assertTrue(IObjectWillBeRemoved.providedBy(events[0])) self.assertTrue(IObjectRemoved.providedBy(events[1])) self.assertEqual(events[0].object, dummy) self.assertEqual(events[0].parent, folder) self.assertEqual(events[0].name, 'a') self.assertEqual(events[1].object, dummy) self.assertEqual(events[1].parent, folder) self.assertEqual(events[1].name, 'a') self.assertFalse(hasattr(dummy, '__parent__')) self.assertFalse(hasattr(dummy, '__name__'))
def test___delitem__(self): from substanced.interfaces import IObjectEvent from substanced.interfaces import IObjectRemoved from substanced.interfaces import IObjectWillBeRemoved events = [] def listener(event, obj, container): events.append(event) self._registerEventListener(listener, IObjectEvent) dummy = DummyModel() dummy.__parent__ = None dummy.__name__ = None folder = self._makeOne({'a': dummy}) self.assertEqual(folder._num_objects(), 1) del folder['a'] self.assertEqual(folder._num_objects(), 0) self.assertEqual(len(events), 2) self.assertTrue(IObjectWillBeRemoved.providedBy(events[0])) self.assertTrue(IObjectRemoved.providedBy(events[1])) self.assertEqual(events[0].object, dummy) self.assertEqual(events[0].parent, folder) self.assertEqual(events[0].name, 'a') self.assertEqual(events[1].object, dummy) self.assertEqual(events[1].parent, folder) self.assertEqual(events[1].name, 'a') self.assertFalse(hasattr(dummy, '__parent__')) self.assertFalse(hasattr(dummy, '__name__'))