Example #1
0
    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__"))
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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__'))
Example #5
0
 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__'))