summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg_resources.py3
-rw-r--r--setuptools/tests/test_resources.py10
2 files changed, 13 insertions, 0 deletions
diff --git a/pkg_resources.py b/pkg_resources.py
index 5df5a3e6..4c7924b7 100644
--- a/pkg_resources.py
+++ b/pkg_resources.py
@@ -82,6 +82,9 @@ packaging = setuptools._vendor.packaging
class _SetuptoolsVersionMixin(object):
+ def __hash__(self):
+ return super(_SetuptoolsVersionMixin, self).__hash__()
+
def __lt__(self, other):
if isinstance(other, tuple):
return tuple(self) < other
diff --git a/setuptools/tests/test_resources.py b/setuptools/tests/test_resources.py
index 13f80aa4..1902fb2c 100644
--- a/setuptools/tests/test_resources.py
+++ b/setuptools/tests/test_resources.py
@@ -528,6 +528,16 @@ class ParseTests(TestCase):
self.assertTrue(parse_version("3.0") != tuple(parse_version("2.0")))
self.assertFalse(parse_version("3.0") != tuple(parse_version("3.0")))
+ def testVersionHashable(self):
+ """
+ Ensure that our versions stay hashable even though we've subclassed
+ them and added some shim code to them.
+ """
+ self.assertEqual(
+ hash(parse_version("1.0")),
+ hash(parse_version("1.0")),
+ )
+
class ScriptHeaderTests(TestCase):
non_ascii_exe = '/Users/José/bin/python'