class TestResourceExists(unittest.TestCase): def setUp(self): self.dao_exist = Mock() self.validator = ResourceExists('field', self.dao_exist) def test_given_resource_does_not_exist_then_raises_error(self): model = Mock(field=sentinel.field) self.dao_exist.return_value = False assert_that(calling(self.validator.validate).with_args(model), raises(InputError)) def test_given_resource_exists_then_validation_passes(self): model = Mock(field=sentinel.field) self.dao_exist.return_value = True self.validator.validate(model) self.dao_exist.assert_called_once_with(model.field)