Kaydet (Commit) 6240bd11 authored tarafından Brett Cannon's avatar Brett Cannon

merge

...@@ -126,13 +126,6 @@ def _get_masked_mode(mode): ...@@ -126,13 +126,6 @@ def _get_masked_mode(mode):
umask(mask) umask(mask)
return mode & ~mask return mode & ~mask
def _are_same_file(stat1, stat2):
"""Helper function that checks whether two stat results refer to the same
file.
"""
return (stat1.st_ino == stat2.st_ino and stat1.st_dev == stat2.st_dev)
#
# Super directory utilities. # Super directory utilities.
# (Inspired by Eric Raymond; the doc strings are mostly his) # (Inspired by Eric Raymond; the doc strings are mostly his)
...@@ -345,7 +338,7 @@ if _exists("openat"): ...@@ -345,7 +338,7 @@ if _exists("openat"):
topfd = open(top, O_RDONLY) topfd = open(top, O_RDONLY)
try: try:
if (followlinks or (st.S_ISDIR(orig_st.st_mode) and if (followlinks or (st.S_ISDIR(orig_st.st_mode) and
_are_same_file(orig_st, fstat(topfd)))): path.samestat(orig_st, fstat(topfd)))):
for x in _fwalk(topfd, top, topdown, onerror, followlinks): for x in _fwalk(topfd, top, topdown, onerror, followlinks):
yield x yield x
finally: finally:
...@@ -382,7 +375,7 @@ if _exists("openat"): ...@@ -382,7 +375,7 @@ if _exists("openat"):
onerror(err) onerror(err)
return return
try: try:
if followlinks or _are_same_file(orig_st, fstat(dirfd)): if followlinks or path.samestat(orig_st, fstat(dirfd)):
dirpath = path.join(toppath, name) dirpath = path.join(toppath, name)
for x in _fwalk(dirfd, dirpath, topdown, onerror, followlinks): for x in _fwalk(dirfd, dirpath, topdown, onerror, followlinks):
yield x yield x
......
...@@ -13,6 +13,8 @@ from test.script_helper import ( ...@@ -13,6 +13,8 @@ from test.script_helper import (
verbose = support.verbose verbose = support.verbose
example_args = ['test1', 'test2', 'test3']
test_source = """\ test_source = """\
# Script may be run with optimisation enabled, so don't rely on assert # Script may be run with optimisation enabled, so don't rely on assert
# statements being executed # statements being executed
...@@ -36,6 +38,9 @@ print('__package__==%r' % __package__) ...@@ -36,6 +38,9 @@ print('__package__==%r' % __package__)
# Check the sys module # Check the sys module
import sys import sys
assertIdentical(globals(), sys.modules[__name__].__dict__) assertIdentical(globals(), sys.modules[__name__].__dict__)
from test import test_cmd_line_script
example_args_list = test_cmd_line_script.example_args
assertEqual(sys.argv[1:], example_args_list)
print('sys.argv[0]==%a' % sys.argv[0]) print('sys.argv[0]==%a' % sys.argv[0])
print('sys.path[0]==%a' % sys.path[0]) print('sys.path[0]==%a' % sys.path[0])
# Check the working directory # Check the working directory
...@@ -100,7 +105,7 @@ class CmdLineTest(unittest.TestCase): ...@@ -100,7 +105,7 @@ class CmdLineTest(unittest.TestCase):
*cmd_line_switches): *cmd_line_switches):
if not __debug__: if not __debug__:
cmd_line_switches += ('-' + 'O' * sys.flags.optimize,) cmd_line_switches += ('-' + 'O' * sys.flags.optimize,)
run_args = cmd_line_switches + (script_name,) run_args = cmd_line_switches + (script_name,) + tuple(example_args)
rc, out, err = assert_python_ok(*run_args) rc, out, err = assert_python_ok(*run_args)
self._check_output(script_name, rc, out + err, expected_file, self._check_output(script_name, rc, out + err, expected_file,
expected_argv0, expected_path0, expected_package) expected_argv0, expected_path0, expected_package)
...@@ -240,7 +245,7 @@ class CmdLineTest(unittest.TestCase): ...@@ -240,7 +245,7 @@ class CmdLineTest(unittest.TestCase):
pkg_dir = os.path.join(script_dir, 'test_pkg') pkg_dir = os.path.join(script_dir, 'test_pkg')
make_pkg(pkg_dir, "import sys; print('init_argv0==%r' % sys.argv[0])") make_pkg(pkg_dir, "import sys; print('init_argv0==%r' % sys.argv[0])")
script_name = _make_test_script(pkg_dir, 'script') script_name = _make_test_script(pkg_dir, 'script')
rc, out, err = assert_python_ok('-m', 'test_pkg.script') rc, out, err = assert_python_ok('-m', 'test_pkg.script', *example_args)
if verbose > 1: if verbose > 1:
print(out) print(out)
expected = "init_argv0==%r" % '-m' expected = "init_argv0==%r" % '-m'
...@@ -270,7 +275,7 @@ class CmdLineTest(unittest.TestCase): ...@@ -270,7 +275,7 @@ class CmdLineTest(unittest.TestCase):
with support.temp_cwd(path=script_dir): with support.temp_cwd(path=script_dir):
with open("-m", "w") as f: with open("-m", "w") as f:
f.write("data") f.write("data")
rc, out, err = assert_python_ok('-m', 'other') rc, out, err = assert_python_ok('-m', 'other', *example_args)
self._check_output(script_name, rc, out, self._check_output(script_name, rc, out,
script_name, script_name, '', '') script_name, script_name, '', '')
......
...@@ -146,6 +146,9 @@ Library ...@@ -146,6 +146,9 @@ Library
Tests Tests
----- -----
- Issue #14026: In test_cmd_line_script, check that sys.argv is populated
correctly for the various invocation approaches (Patch by Jason Yeo)
- Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging - Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging
message (Patch by Jason Yeo) message (Patch by Jason Yeo)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment