Followup to #7502: add __hash__ method and tests.
diff --git a/Lib/doctest.py b/Lib/doctest.py
index cd6d3ac..8297fad 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -465,6 +465,10 @@
     def __ne__(self, other):
         return not self == other
 
+    def __hash__(self):
+        return hash((self.source, self.want, self.lineno, self.indent,
+                     self.exc_msg))
+
 
 class DocTest:
     """
@@ -528,6 +532,9 @@
     def __ne__(self, other):
         return not self == other
 
+    def __hash__(self):
+        return hash((self.docstring, self.name, self.filename, self.lineno))
+
     # This lets us sort tests by name:
     def __cmp__(self, other):
         if not isinstance(other, DocTest):
@@ -2293,6 +2300,10 @@
     def __ne__(self, other):
         return not self == other
 
+    def __hash__(self):
+        return hash((self._dt_optionflags, self._dt_setUp, self._dt_tearDown,
+                     self._dt_checker))
+
     def __repr__(self):
         name = self._dt_test.name.split('.')
         return "%s (%s)" % (name[-1], '.'.join(name[:-1]))