Source code for tests.test_tags

import unittest

from troposphere import If, Sub, Tag, Tags
from troposphere.autoscaling import Tags as ASTags


[docs]class TestTags(unittest.TestCase):
[docs] def test_TagAddition(self): tags = Tags(foo="foo") tags += Tags(bar="bar") tags = tags + Tags(baz="baz") result = [ {"Value": "foo", "Key": "foo"}, {"Value": "bar", "Key": "bar"}, {"Value": "baz", "Key": "baz"}, ] self.assertEqual(tags.to_dict(), result)
[docs] def test_TagConditional(self): tags = Tags( {"foo": "foo"}, If("MyCondition", Tag("bar", "bar"), Tag("baz", "baz")) ) result = [ { "Fn::If": [ "MyCondition", {"Key": "bar", "Value": "bar"}, {"Key": "baz", "Value": "baz"}, ] }, {"Value": "foo", "Key": "foo"}, ] self.assertEqual(tags.to_dict(), result)
[docs] def test_ASTagAddition(self): tags = ASTags(foo=("fooval", True)) tags += ASTags(bar=("barval", False)) tags = tags + ASTags(baz="bazval") result = [ {"Value": "fooval", "Key": "foo", "PropagateAtLaunch": True}, {"Value": "barval", "Key": "bar", "PropagateAtLaunch": False}, {"Value": "bazval", "Key": "baz", "PropagateAtLaunch": True}, ] self.assertEqual(tags.to_dict(), result)
[docs] def test_Unsortable(self): result = [{"Key": {"Fn::Sub": "somestring"}, "Value": "val"}] tags = Tags({Sub("somestring"): "val"}) self.assertEqual(tags.to_dict(), result)
[docs] def test_Formats(self): result = [ {"Value": "bar", "Key": "bar"}, {"Value": "baz", "Key": "baz"}, {"Value": "foo", "Key": "foo"}, ] tags = Tags(bar="bar", baz="baz", foo="foo") self.assertEqual(tags.to_dict(), result) tags = Tags({"bar": "bar", "baz": "baz", "foo": "foo"}) self.assertEqual(tags.to_dict(), result) tags = Tags(**{"bar": "bar", "baz": "baz", "foo": "foo"}) self.assertEqual(tags.to_dict(), result) result = [{"Key": "test-tag", "Value": "123456"}] tags = Tags({"test-tag": "123456"}) self.assertEqual(tags.to_dict(), result) with self.assertRaises(TypeError): Tags(1) with self.assertRaises(TypeError): Tags("tag") with self.assertRaises(TypeError): Tags("key", "value") with self.assertRaises(TypeError): Tags({}, "key", "value")
if __name__ == "__main__": unittest.main()