diff --git a/tests/test_basic.py b/tests/test_basic.py index 5c710ee0c..e7e2d8968 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -349,6 +349,22 @@ def test_ref_eq(self): self.assertNotEqual(r, Ref) self.assertNotEqual(wch.Ref(), "NonexistantResource") + def test_ref_hash(self): + s = hash("AWS::NoValue") + r = hash(Ref(s)) + + wch = cloudformation.WaitConditionHandle("TestResource") + + self.assertEqual(s, r) + self.assertEqual(s, hash(NoValue)) + self.assertEqual(r, hash(NoValue)) + self.assertEqual(hash(wch.Ref()), hash("TestResource")) + + self.assertNotEqual(r, hash("AWS::Region")) + self.assertNotEqual(r, hash(Region)) + self.assertNotEqual(r, hash(Ref)) + self.assertNotEqual(hash(wch.Ref()), hash("NonexistantResource")) + class TestName(unittest.TestCase): diff --git a/troposphere/__init__.py b/troposphere/__init__.py index fdb00f844..85453dcdb 100644 --- a/troposphere/__init__.py +++ b/troposphere/__init__.py @@ -493,6 +493,9 @@ def __eq__(self, other): return self.data == other.data return self.data.values()[0] == other + def __hash__(self): + return hash(self.data.values()[0]) + # Pseudo Parameter Ref's AccountId = Ref(AWS_ACCOUNT_ID)