From 1f8294851bb78ea2f5e6510e55e00c92e96585bc Mon Sep 17 00:00:00 2001
From: Nick Coghlan <ncoghlan@gmail.com>
Date: Sun, 28 Jul 2013 21:06:50 +1000
Subject: [PATCH] Issue #15494: test.support is now a package rather than a
 module

Also including this change in 3.3 to help avoid spurious conflicts
between the two most active branches.

(Initial patch by Indra Talip)
---
 Lib/test/{support.py => support/__init__.py} | 7 +++++--
 Lib/test/test_linecache.py                   | 2 +-
 Misc/ACKS                                    | 1 +
 Misc/NEWS                                    | 3 +++
 4 files changed, 10 insertions(+), 3 deletions(-)
 rename Lib/test/{support.py => support/__init__.py} (99%)

diff --git a/Lib/test/support.py b/Lib/test/support/__init__.py
similarity index 99%
rename from Lib/test/support.py
rename to Lib/test/support/__init__.py
index 7ab5ff7d316..3ebc49dd2e0 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support/__init__.py
@@ -787,9 +787,12 @@ if hasattr(os, "umask"):
         finally:
             os.umask(oldmask)
 
+# TEST_HOME refers to the top level directory of the "test" package
+# that contains Python's regression test suite
+TEST_HOME = os.path.dirname(os.path.abspath(__file__))
 
-def findfile(file, here=__file__, subdir=None):
-    """Try to find a file on sys.path and the working directory.  If it is not
+def findfile(file, here=TEST_HOME, subdir=None):
+    """Try to find a file on sys.path or in the test directory.  If it is not
     found the argument passed to the function is returned (this does not
     necessarily signal failure; could still be the legitimate path)."""
     if os.path.isabs(file):
diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py
index 7d14534d35b..5fe0554572c 100644
--- a/Lib/test/test_linecache.py
+++ b/Lib/test/test_linecache.py
@@ -11,7 +11,7 @@ INVALID_NAME = '!@$)(!@#_1'
 EMPTY = ''
 TESTS = 'inspect_fodder inspect_fodder2 mapping_tests'
 TESTS = TESTS.split()
-TEST_PATH = os.path.dirname(support.__file__)
+TEST_PATH = os.path.dirname(__file__)
 MODULES = "linecache abc".split()
 MODULE_PATH = os.path.dirname(FILENAME)
 
diff --git a/Misc/ACKS b/Misc/ACKS
index 288f18613bb..aaa8dd4433f 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1202,6 +1202,7 @@ Thenault Sylvain
 Péter Szabó
 Amir Szekely
 Arfrever Frehtes Taifersar Arahesis
+Indra Talip
 Neil Tallim
 Geoff Talvola
 Musashi Tamura
diff --git a/Misc/NEWS b/Misc/NEWS
index ff6fe06db7b..853e7385239 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -222,6 +222,9 @@ IDLE
 Tests
 -----
 
+- Issue #15494: test.support is now a package rather than a module (Initial
+  patch by Indra Talip)
+
 - Issue #17944: test_zipfile now discoverable and uses subclassing to
   generate tests for different compression types.  Fixed a bug with skipping
   some tests due to use of exhausted iterators.
-- 
2.30.9