diff options
author | Mats Wichmann <mats@linux.com> | 2020-02-18 15:24:13 (GMT) |
---|---|---|
committer | Mats Wichmann <mats@linux.com> | 2020-02-20 14:27:02 (GMT) |
commit | 71389d9642877ffcb191b16f7b08ba3bf78da530 (patch) | |
tree | 239c29d2ac66c5fc32640431329b11ae97c75832 /testing | |
parent | 6975fa52a3424d995aadeabd31f57d491456a3e4 (diff) | |
download | SCons-71389d9642877ffcb191b16f7b08ba3bf78da530.zip SCons-71389d9642877ffcb191b16f7b08ba3bf78da530.tar.gz SCons-71389d9642877ffcb191b16f7b08ba3bf78da530.tar.bz2 |
rm-py2: Remove "from __future__" from more places
A couple of minor reformats along the way, most prominently, in tests,
if being edited anyway, make sure the docstring most tests have is
actually the docstring (sometimes the __revision__ line came before,
which makes the string not be the docstring).
Snuck in some minor framework changes that were orphaned when another
draft PR was not needed: this almost all docstring changes, the
functional part is using casefold instead of lower in a match func -
a slightly better approach which is now possible that Py2 compatibility
is not needed.
Signed-off-by: Mats Wichmann <mats@linux.com>
Diffstat (limited to 'testing')
-rw-r--r-- | testing/framework/TestCmd.py | 43 | ||||
-rw-r--r-- | testing/framework/TestCmdTests.py | 20 | ||||
-rw-r--r-- | testing/framework/TestCommon.py | 2 | ||||
-rw-r--r-- | testing/framework/TestCommonTests.py | 7 | ||||
-rw-r--r-- | testing/framework/TestSCons.py | 1 | ||||
-rw-r--r-- | testing/framework/TestSCons_time.py | 1 | ||||
-rw-r--r-- | testing/framework/TestSConsign.py | 1 |
7 files changed, 34 insertions, 41 deletions
diff --git a/testing/framework/TestCmd.py b/testing/framework/TestCmd.py index f29449f..ed8b4b4 100644 --- a/testing/framework/TestCmd.py +++ b/testing/framework/TestCmd.py @@ -285,7 +285,6 @@ version. # PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, # AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -from __future__ import division, print_function __author__ = "Steven Knight <knight at baldmt dot com>" __revision__ = "TestCmd.py 1.3.D001 2010/06/03 12:58:27 knight" @@ -492,11 +491,9 @@ def match_caseinsensitive(lines=None, matches=None): """ Match function using case-insensitive matching. - Only a simplistic comparison is done, based on lowercasing the - strings. This has plenty of holes for unicode data using - non-English languages. - - TODO: casefold() is better than lower() if we don't need Py2 support. + Only a simplistic comparison is done, based on casefolding + the strings. This may still fail but is the suggestion of + the Unicode Standard. :param lines: data lines :type lines: str or list[str] @@ -512,7 +509,7 @@ def match_caseinsensitive(lines=None, matches=None): if len(lines) != len(matches): return None for line, match in zip(lines, matches): - if line.lower() != match.lower(): + if line.casefold() != match.casefold(): return None return 1 @@ -700,7 +697,7 @@ if sys.platform == 'win32': if is_String(pathext): pathext = pathext.split(os.pathsep) for ext in pathext: - if ext.lower() == file[-len(ext):].lower(): + if ext.casefold() == file[-len(ext):].casefold(): pathext = [''] break for dir in path: @@ -1504,13 +1501,13 @@ class TestCmd(object): @staticmethod def fix_binary_stream(stream): """ - Handle stdout/stderr from popen when we specify universal_newlines = False. + Handle stdout/stderr from popen when we specify not universal_newlines - This will read from the pipes in binary mode, not decode the output, - and not convert line endings to \n. + This will read from the pipes in binary mode, will not decode the + output, and will not convert line endings to \n. We do this because in py3 (3.5) with universal_newlines=True, it will choose the default system locale to decode the output, and this breaks unicode - output. Specifically breaking test/option--tree.py which outputs a unicode char. + output. Specifically test/option--tree.py which outputs a unicode char. py 3.6 allows us to pass an encoding param to popen thus not requiring the decode nor end of line handling, because we propagate universal_newlines as specified. @@ -1968,13 +1965,20 @@ class TestCmd(object): do_chmod(top) def write(self, file, content, mode='wb'): - """Writes the specified content text (second argument) to the - specified file name (first argument). The file name may be - a list, in which case the elements are concatenated with the - os.path.join() method. The file is created under the temporary - working directory. Any subdirectories in the path must already - exist. The I/O mode for the file may be specified; it must - begin with a 'w'. The default is 'wb' (binary write). + """Write data to file + + The file is created under the temporary working directory. + Any subdirectories in the path must already exist. The + write is converted to the required type rather than failing + if there is a str/bytes mistmatch. + + :param file: name of file to write to. If a list, treated + as components of a path and concatenated into a path. + :type file: str or list(str) + :param content: data to write. + :type content: str or bytes + :param mode: file mode, default is binary. + :type mode: str """ file = self.canonicalize(file) if mode[0] != 'w': @@ -1983,7 +1987,6 @@ class TestCmd(object): try: f.write(content) except TypeError as e: - # python 3 default strings are not bytes, but unicode f.write(bytes(content, 'utf-8')) # Local Variables: diff --git a/testing/framework/TestCmdTests.py b/testing/framework/TestCmdTests.py index 48eba1e..e8c2744 100644 --- a/testing/framework/TestCmdTests.py +++ b/testing/framework/TestCmdTests.py @@ -254,7 +254,7 @@ class cleanup_TestCase(TestCmdTestCase): def test_atexit(self): """Test cleanup() when atexit is used""" - self.popen_python("""from __future__ import print_function + self.popen_python("""\ import sys sys.path = ['%s'] + sys.path import atexit @@ -269,7 +269,7 @@ sys.exit(0) @unittest.skipIf(TestCmd.IS_PY3, "No sys.exitfunc in Python 3") def test_exitfunc(self): """Test cleanup() when sys.exitfunc is set""" - self.popen_python("""from __future__ import print_function + self.popen_python("""\ import sys sys.path = ['%s'] + sys.path def my_exitfunc(): @@ -609,7 +609,7 @@ sys.exit(0) def test_diff_stderr_not_affecting_diff_stdout(self): """Test diff_stderr() not affecting diff_stdout() behavior""" - self.popen_python(r"""from __future__ import print_function + self.popen_python(r""" import sys sys.path = ['%s'] + sys.path import TestCmd @@ -716,7 +716,7 @@ sys.exit(0) def test_diff_stdout_not_affecting_diff_stderr(self): """Test diff_stdout() not affecting diff_stderr() behavior""" - self.popen_python(r"""from __future__ import print_function + self.popen_python(r""" import sys sys.path = ['%s'] + sys.path import TestCmd @@ -2089,7 +2089,7 @@ sys.exit(0) def test_set_diff_function_stdout(self): """Test set_diff_function(): stdout""" - self.popen_python("""from __future__ import print_function + self.popen_python("""\ import sys sys.path = ['%s'] + sys.path import TestCmd @@ -2118,7 +2118,7 @@ diff_stdout: def test_set_diff_function_stderr(self): """Test set_diff_function(): stderr """ - self.popen_python("""from __future__ import print_function + self.popen_python("""\ import sys sys.path = ['%s'] + sys.path import TestCmd @@ -2693,7 +2693,7 @@ class stdin_TestCase(TestCmdTestCase): def test_stdin(self): """Test stdin()""" run_env = TestCmd.TestCmd(workdir = '') - run_env.write('run', """from __future__ import print_function + run_env.write('run', """\ import fileinput for line in fileinput.input(): print('Y'.join(line[:-1].split('X'))) @@ -3332,15 +3332,13 @@ class variables_TestCase(TestCmdTestCase): 'TestCmd', ] - script = "from __future__ import print_function\n" + \ - "import TestCmd\n" + \ + script = "import TestCmd\n" + \ '\n'.join([ "print(TestCmd.%s\n)" % v for v in variables ]) run_env.run(program=sys.executable, stdin=script) stderr = run_env.stderr() assert stderr == "", stderr - script = "from __future__ import print_function\n" + \ - "from TestCmd import *\n" + \ + script = "from TestCmd import *\n" + \ '\n'.join([ "print(%s)" % v for v in variables ]) run_env.run(program=sys.executable, stdin=script) stderr = run_env.stderr() diff --git a/testing/framework/TestCommon.py b/testing/framework/TestCommon.py index 8e6cc8e..1bd9f6b 100644 --- a/testing/framework/TestCommon.py +++ b/testing/framework/TestCommon.py @@ -93,8 +93,6 @@ The TestCommon module also provides the following variables # AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -from __future__ import print_function - __author__ = "Steven Knight <knight at baldmt dot com>" __revision__ = "TestCommon.py 1.3.D001 2010/06/03 12:58:27 knight" __version__ = "1.3" diff --git a/testing/framework/TestCommonTests.py b/testing/framework/TestCommonTests.py index 6377737..01e9fe1 100644 --- a/testing/framework/TestCommonTests.py +++ b/testing/framework/TestCommonTests.py @@ -167,7 +167,6 @@ class __init__TestCase(TestCommonTestCase): os.chdir(run_env.workdir) script = lstrip("""\ - from __future__ import print_function from TestCommon import TestCommon tc = TestCommon(workdir='') import os @@ -2340,15 +2339,13 @@ class variables_TestCase(TestCommonTestCase): 'dll_suffix', ] - script = "from __future__ import print_function\n" + \ - "import TestCommon\n" + \ + script = "import TestCommon\n" + \ '\n'.join([ "print(TestCommon.%s)\n" % v for v in variables ]) run_env.run(program=sys.executable, stdin=script) stderr = run_env.stderr() assert stderr == "", stderr - script = "from __future__ import print_function\n" + \ - "from TestCommon import *\n" + \ + script = "from TestCommon import *\n" + \ '\n'.join([ "print(%s)" % v for v in variables ]) run_env.run(program=sys.executable, stdin=script) stderr = run_env.stderr() diff --git a/testing/framework/TestSCons.py b/testing/framework/TestSCons.py index 2f20950..8800c1b 100644 --- a/testing/framework/TestSCons.py +++ b/testing/framework/TestSCons.py @@ -13,7 +13,6 @@ attributes defined in this subclass. """ # __COPYRIGHT__ -from __future__ import division, print_function __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" diff --git a/testing/framework/TestSCons_time.py b/testing/framework/TestSCons_time.py index f27e0e3..6f46e26 100644 --- a/testing/framework/TestSCons_time.py +++ b/testing/framework/TestSCons_time.py @@ -27,7 +27,6 @@ from TestSCons import search_re, search_re_in_list __all__.extend(['TestSCons_time',]) SConstruct = """\ -from __future__ import print_function import os print("SConstruct file directory:", os.getcwd()) """ diff --git a/testing/framework/TestSConsign.py b/testing/framework/TestSConsign.py index a48b648..665059c 100644 --- a/testing/framework/TestSConsign.py +++ b/testing/framework/TestSConsign.py @@ -1,5 +1,4 @@ # __COPYRIGHT__ -from __future__ import print_function __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" |