From 29f9540d973d5e2f5dbc5dd631287b6f059c8630 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 3 Jan 2015 03:35:38 -0500 Subject: Remove dependence of the script on its own file, but instead generate the necessary file in a temporary directory. --- setuptools/tests/test_easy_install.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'setuptools/tests/test_easy_install.py') diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py index f93dbd4c..cfc4d6bf 100644 --- a/setuptools/tests/test_easy_install.py +++ b/setuptools/tests/test_easy_install.py @@ -1,6 +1,4 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# NOTE: the shebang and encoding lines are for TestScriptHeader do not remove +#! -*- coding: utf-8 -*- """Easy install Tests """ @@ -450,9 +448,17 @@ class TestScriptHeader: @mock.patch.dict(sys.modules, java=mock.Mock(lang=mock.Mock(System= mock.Mock(getProperty=mock.Mock(return_value=""))))) @mock.patch('sys.platform', 'java1.5.0_13') - def test_get_script_header_jython_workaround(self): - # A mock sys.executable that uses a shebang line (this file) - exe = os.path.normpath(os.path.splitext(__file__)[0] + '.py') + def test_get_script_header_jython_workaround(self, tmpdir): + # Create a mock sys.executable that uses a shebang line + header = DALS(""" + #!/usr/bin/python + # -*- coding: utf-8 -*- + """) + exe = tmpdir / 'exe.py' + with exe.open('w') as f: + f.write(header) + exe = str(exe) + header = get_script_header('#!/usr/local/bin/python', executable=exe) assert header == '#!/usr/bin/env %s\n' % exe -- cgit v1.2.1 From a849ee957f3ba12945278f88e473eb3612faf4b9 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 3 Jan 2015 03:39:21 -0500 Subject: It appears as if Python 2.6 gets its warnings on a different pipe. --- setuptools/tests/test_easy_install.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'setuptools/tests/test_easy_install.py') diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py index cfc4d6bf..04271178 100644 --- a/setuptools/tests/test_easy_install.py +++ b/setuptools/tests/test_easy_install.py @@ -462,16 +462,20 @@ class TestScriptHeader: header = get_script_header('#!/usr/local/bin/python', executable=exe) assert header == '#!/usr/bin/env %s\n' % exe + expect_out = 'stdout' if sys.version_info < (2,7) else 'stderr' + with contexts.quiet() as (stdout, stderr): # When options are included, generate a broken shebang line # with a warning emitted candidate = get_script_header('#!/usr/bin/python -x', executable=exe) assert candidate == '#!%s -x\n' % exe - assert 'Unable to adapt shebang line' in stderr.getvalue() + output = locals()[expect_out] + assert 'Unable to adapt shebang line' in output.getvalue() with contexts.quiet() as (stdout, stderr): candidate = get_script_header('#!/usr/bin/python', executable=self.non_ascii_exe) assert candidate == '#!%s -x\n' % self.non_ascii_exe - assert 'Unable to adapt shebang line' in stderr.getvalue() + output = locals()[expect_out] + assert 'Unable to adapt shebang line' in output.getvalue() -- cgit v1.2.1