doctest now supports packages

Issue #26641: doctest.DocFileTest and doctest.testfile() now support packages
(module splitted into multiple directories) for the package parameter.
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 38fdd80..5630220 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -381,12 +381,15 @@
             sys.stdout = save_stdout
 
 # [XX] Normalize with respect to os.path.pardir?
-def _module_relative_path(module, path):
+def _module_relative_path(module, test_path):
     if not inspect.ismodule(module):
         raise TypeError('Expected a module: %r' % module)
-    if path.startswith('/'):
+    if test_path.startswith('/'):
         raise ValueError('Module-relative files may not have absolute paths')
 
+    # Normalize the path. On Windows, replace "/" with "\".
+    test_path = os.path.join(*(test_path.split('/')))
+
     # Find the base directory for the path.
     if hasattr(module, '__file__'):
         # A normal module/package
@@ -398,13 +401,19 @@
         else:
             basedir = os.curdir
     else:
+        if hasattr(module, '__path__'):
+            for directory in module.__path__:
+                fullpath = os.path.join(directory, test_path)
+                if os.path.exists(fullpath):
+                    return fullpath
+
         # A module w/o __file__ (this includes builtins)
         raise ValueError("Can't resolve paths relative to the module "
                          "%r (it has no __file__)"
                          % module.__name__)
 
-    # Combine the base directory and the path.
-    return os.path.join(basedir, *(path.split('/')))
+    # Combine the base directory and the test path.
+    return os.path.join(basedir, test_path)
 
 ######################################################################
 ## 2. Example & DocTest