import unittest
from troposphere import Parameter, Ref
[docs]class TestInitArguments(unittest.TestCase):
[docs] def test_title_max_length(self):
title = "i" * 256
with self.assertRaises(ValueError):
Parameter(title, Type="String")
[docs] def test_ref_can_be_requested(self):
param = Parameter("title", Type="String")
reference = param.ref()
self.assertIsInstance(reference, Ref)
self.assertDictEqual(reference.data, {"Ref": "title"})
[docs]class TestParameterValidator(unittest.TestCase):
[docs] def test_allowed_pattern_for_number(self):
with self.assertRaises(ValueError):
Parameter("Foo", Type="Number", AllowedPattern="^[a-zA-Z0-9]*$").validate()
[docs] def test_allowed_pattern_for_comma_delimited_list_and_string(self):
Parameter(
"Foo",
Type="CommaDelimitedList",
AllowedPattern="^[A-Z]{2}$",
Default="",
).validate()
Parameter(
"Foo",
Type="String",
AllowedPattern="^[A-Z]{2}$",
Default="",
).validate()
[docs] def test_aws_specific_type(self):
Parameter(
"Foo",
Type="AWS::EC2::KeyPair::KeyName",
Default="",
).validate()
if __name__ == "__main__":
unittest.main()