示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
 def setUp(self):
     super(ImageExistsValidatorTestCase, self).setUp()
     self.validator = validators.ImageExistsValidator("image", True)
     self.config = config
     self.credentials = credentials
示例#6
0
 def setUp(self):
     super(ImageExistsValidatorTestCase, self).setUp()
     self.validator = validators.ImageExistsValidator("image", True)
     self.config = copy.deepcopy(config)
     self.context = copy.deepcopy(context)