Пример #1
0
def test_file_exists():
    filename = "/tmp/" + uuid.uuid1().hex + ".test"
    assert CfnStackValidation._file_exists(filename) is False
    with open(filename, "w+") as f:
        f.write("hello")
    assert CfnStackValidation._file_exists(filename) is True
    os.remove(filename)
Пример #2
0
def test_validate_template():
    config = {"name": "test", "parameters": ""}
    with pytest.raises(ValueError):
        CfnStackValidation._validate_template_config([config])
    with pytest.raises(ValueError):
        CfnStackValidation._validate_template_config(config)
    config = {"name": "test", "parameters": {}}
    assert CfnStackValidation._validate_template_config(config) is None
Пример #3
0
def test_config(template):
    assert CfnStackValidation.validate_config(template) is None
    template_test = template.copy()
    del template_test["aws"]
    with pytest.raises(KeyError):
        CfnStackValidation.validate_config(template_test)
    template_test = template.copy()
    del template_test["template"]
    with pytest.raises(KeyError):
        CfnStackValidation.validate_config(template_test)
    template_test = template.copy()
    del template_test["location"]
    with pytest.raises(KeyError):
        CfnStackValidation.validate_config(template_test)
    template_test = template.copy()
    template_test["location"] = "dsdsdds"
    with pytest.raises(FileNotFoundError):
        CfnStackValidation.validate_config(template_test)
Пример #4
0
def test_validate_lambda():
    filename = "/tmp/" + uuid.uuid1().hex + ".test"
    with open(filename, "w+") as f:
        f.write("hello")
    config = {
        "name": "test",
        "location": filename,
        "template-attribute": "asdasd",
        "bucket": "sfsdfs",
    }
    with pytest.raises(ValueError):
        CfnStackValidation._validate_lambda_config([config])
    os.remove(filename)
    config["location"] = "/tmp/"
    assert CfnStackValidation._validate_lambda_config([config]) is None
    config_failed = config.copy()
    del config_failed["name"]
    with pytest.raises(KeyError):
        CfnStackValidation._validate_lambda_config([config_failed])
    config_failed = config.copy()
    del config_failed["location"]
    with pytest.raises(KeyError):
        CfnStackValidation._validate_lambda_config([config_failed])
Пример #5
0
def test_validate_aws():
    config = {"region": "test", "account-id": "111111111111"}
    assert CfnStackValidation._validate_aws_config(config) is None
    config["region"] = 22
    with pytest.raises(ValueError):
        CfnStackValidation._validate_aws_config(config)
    with pytest.raises(ValueError):
        CfnStackValidation._validate_aws_config([config])
    config = {"region": "test", "account-id": "222"}
    with pytest.raises(ValueError):
        CfnStackValidation._validate_aws_config(config)
    config = {"name": "test", "parameters": {}}
    with pytest.raises(KeyError):
        CfnStackValidation._validate_aws_config(config)
    config = {"region": "test", "parameters": {}}
    with pytest.raises(KeyError):
        CfnStackValidation._validate_aws_config(config)
Пример #6
0
 def validate_template(self):
     """Validate CFN template with CFNLINT"""
     if self.render_template is None:
         self.render_template()
     CfnStackValidation.validate_stack(self.rendered_template)
Пример #7
0
 def __init__(self, config, deployer):
     super().__init__(config, deployer)
     CfnStackValidation.validate_config(config)