def test_validator_image_not_in_context(self, mock_glance_image_transform): validator = validators.ImageExistsValidator("image", True) config = { "args": { "image": "fake_image" }, "context": { "images": { "fake_image_name": "foo" } } } clients = credentials["openstack"]["users"][ 0].get.return_value.clients.return_value clients.glance().images.get = mock.Mock() result = validator.validate(config, credentials, None, None) self.assertIsNone(result) mock_glance_image_transform.assert_called_once_with( clients=clients, resource_config=config["args"]["image"]) clients.glance().images.get.assert_called_with("image_id") exs = [exceptions.InvalidScenarioArgument(), glance_exc.HTTPNotFound()] for ex in exs: clients.glance().images.get.side_effect = ex result = validator.validate(config, credentials, None, None) self.assertEqual("Image 'fake_image' not found", result.msg)
def test_validator(self, param_name, nullable, err_msg, ex=False): validator = validators.ImageExistsValidator(param_name, nullable) clients = self.credentials["openstack"]["users"][ 0].clients.return_value clients.glance().images.get = mock.Mock() if ex: clients.glance().images.get.side_effect = ex result = validator.validate(self.config, self.credentials, None, None) if err_msg: self.assertEqual(err_msg, result.msg) elif result: self.assertIsNone(result, "Unexpected result '%s'" % result.msg)
def test_validator(self, param_name, nullable, err_msg, ex=False): validator = validators.ImageExistsValidator(param_name, nullable) clients = self.context["users"][0].clients.return_value clients.glance().images.get = mock.Mock() if ex: clients.glance().images.get.side_effect = ex if err_msg: e = self.assertRaises(validators.validation.ValidationError, validator.validate, self.context, self.config, None, None) self.assertEqual(err_msg, e.message) else: result = validator.validate(self.config, self.context, None, None) self.assertIsNone(result)
def test_validator_image_from_context(self): validator = validators.ImageExistsValidator("image", True) config = { "args": { "image": { "regex": r"^foo$" } }, "context": { "images": { "image_name": "foo" } } } result = validator.validate(config, credentials, None, None) self.assertIsNone(result)
def setUp(self): super(ImageExistsValidatorTestCase, self).setUp() self.validator = validators.ImageExistsValidator("image", True) self.config = config self.credentials = credentials
def setUp(self): super(ImageExistsValidatorTestCase, self).setUp() self.validator = validators.ImageExistsValidator("image", True) self.config = copy.deepcopy(config) self.context = copy.deepcopy(context)