diff options
author | Christian Heimes <cheimes@redhat.com> | 2016-03-04 23:54:04 +0100 |
---|---|---|
committer | Christian Heimes <cheimes@redhat.com> | 2016-03-04 23:55:22 +0100 |
commit | 9e78f981e923c879033c26eebad0cb803d66b8d9 (patch) | |
tree | b3239148d894136b4b3ad8ccd6c4bed3f5c49bb2 | |
parent | afb989113ee3816396a2c0f95ac1579b3a4c42c6 (diff) | |
download | pki-9e78f981e923c879033c26eebad0cb803d66b8d9.tar.gz pki-9e78f981e923c879033c26eebad0cb803d66b8d9.tar.xz pki-9e78f981e923c879033c26eebad0cb803d66b8d9.zip |
Make PKIInstance and PKISubsystem hashable
The upgrade uses instance and subsystem as keys for dicts.
-rw-r--r-- | base/server/python/pki/server/__init__.py | 6 | ||||
-rw-r--r-- | tests/python/server/test_server.py | 15 |
2 files changed, 15 insertions, 6 deletions
diff --git a/base/server/python/pki/server/__init__.py b/base/server/python/pki/server/__init__.py index abcce7167..114a6e461 100644 --- a/base/server/python/pki/server/__init__.py +++ b/base/server/python/pki/server/__init__.py @@ -115,7 +115,8 @@ class PKISubsystem(object): self.instance < other.instance or self_type < other_type) - __hash__ = None + def __hash__(self): + return hash((self.name, self.instance, self.type)) def load(self): self.config.clear() @@ -424,7 +425,8 @@ class PKIInstance(object): return (self.name < other.name or self.type < other.type) - __hash__ = None + def __hash__(self): + return hash((self.name, self.type)) def is_valid(self): return os.path.exists(self.conf_dir) diff --git a/tests/python/server/test_server.py b/tests/python/server/test_server.py index 646e6826f..af540faa0 100644 --- a/tests/python/server/test_server.py +++ b/tests/python/server/test_server.py @@ -36,8 +36,12 @@ class PKIServerTests(unittest.TestCase): self.assertFalse(ca != ca) self.assertFalse(ca == ca9) self.assertTrue(ca != ca9) - with self.assertRaises(TypeError): - hash(ca) + d = {ca: 1, ca9: 2} + self.assertEqual(sorted(d), [ca9, ca]) + d.pop(ca9) + self.assertEqual(sorted(d), [ca]) + self.assertIn(ca, d) + self.assertNotIn(ca9, d) def test_subsystem(self): ca = PKIInstance('ca') @@ -53,8 +57,11 @@ class PKIServerTests(unittest.TestCase): self.assertTrue(casub != krasub) self.assertFalse(ca == casub) self.assertTrue(ca != casub) - with self.assertRaises(TypeError): - hash(casub) + d = {casub: 1, krasub: 2} + self.assertEqual(sorted(d), [casub, krasub]) + self.assertIn(casub, d) + d.pop(casub) + self.assertNotIn(casub, d) if __name__ == '__main__': |