def test_not_in_parent(self): obj = self.mock() parent = self.mock() self.set_parent(obj, parent) obj.getId.return_value = 'foo' parent.foo.side_effect = None self.assertTrue(is_temporary(obj))
def test_isTemporary_raises(self): obj = self.mocker.mock() self.set_parent(obj, self.stub()) self.expect(obj.getId).result(None) self.expect(obj.isTemporary()).throw(TypeError()) self.replay() self.assertTrue(is_temporary(obj))
def test_not_temporary(self): obj = self.mock() parent = self.mock() self.set_parent(obj, parent) obj.getId.return_value = 'foo' parent.foo.side_effect = obj obj.isTemporary.return_value = False self.assertFalse(is_temporary(obj))
def test_not_temporary(self): obj = self.mocker.mock() parent = self.mocker.mock() self.set_parent(obj, parent) self.expect(obj.getId()).result('foo') self.expect(parent.foo).result(obj) self.expect(obj.isTemporary()).result(False) self.replay() self.assertFalse(is_temporary(obj))
def test_not_in_parent(self): obj = self.mocker.mock() parent = self.mocker.mock() self.set_parent(obj, parent) self.expect(obj.getId()).result('foo') self.expect(parent.foo, None) self.replay() self.assertTrue(is_temporary(obj))
def publish_after_transition(context, event): """ This event handler is executed after each transition and publishes the object with ftw.publisher on certain transitions. Also when retracting an object, the object will be published, since we should not delete anything unless it's delete from the sender instance too. This is necessary for preventing inconsistency, which could occur when deleting a folder which contains published objects on the reciever site. """ # the event handler will be run multiple times, so we need to # remember which event we've already handled. if getattr(event, _marker, False): return else: setattr(event, _marker, True) if not event.transition: return if is_temporary(context): return config = getUtility(IWorkflowConfigs).get_config_for(context) if config is None: return transition = event.transition.__name__ action = config.transitions().get(transition, None) if action is None: return if action in PUSH_ACTIONS: context.restrictedTraverse('@@publisher.publish')() elif action in DELETE_ACTIONS: context.restrictedTraverse('@@publisher.delete')()
def test_no_parent_is_temporary(self): obj = self.mock() self.set_parent(obj, None) self.assertTrue(is_temporary(obj))
def test_isTemporary_raises(self): obj = self.mock() self.set_parent(obj, self.stub()) obj.getId.return_value = 'foo' obj.isTemporary.side_effect = TypeError() self.assertTrue(is_temporary(obj))
def test_isTemporary_True(self): obj = self.mock() self.set_parent(obj, self.stub()) obj.getId.return_value = 'foo' obj.isTemporary.return_value = True self.assertTrue(is_temporary(obj))
def test_no_parent_is_temporary(self): obj = self.mocker.mock() self.set_parent(obj, None) self.replay() self.assertTrue(is_temporary(obj))