merge
This commit is contained in:
commit
6240bd11ca
11
Lib/os.py
11
Lib/os.py
|
@ -126,13 +126,6 @@ def _get_masked_mode(mode):
|
|||
umask(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.
|
||||
# (Inspired by Eric Raymond; the doc strings are mostly his)
|
||||
|
||||
|
@ -345,7 +338,7 @@ if _exists("openat"):
|
|||
topfd = open(top, O_RDONLY)
|
||||
try:
|
||||
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):
|
||||
yield x
|
||||
finally:
|
||||
|
@ -382,7 +375,7 @@ if _exists("openat"):
|
|||
onerror(err)
|
||||
return
|
||||
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)
|
||||
for x in _fwalk(dirfd, dirpath, topdown, onerror, followlinks):
|
||||
yield x
|
||||
|
|
|
@ -13,6 +13,8 @@ from test.script_helper import (
|
|||
|
||||
verbose = support.verbose
|
||||
|
||||
example_args = ['test1', 'test2', 'test3']
|
||||
|
||||
test_source = """\
|
||||
# Script may be run with optimisation enabled, so don't rely on assert
|
||||
# statements being executed
|
||||
|
@ -36,6 +38,9 @@ print('__package__==%r' % __package__)
|
|||
# Check the sys module
|
||||
import sys
|
||||
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.path[0]==%a' % sys.path[0])
|
||||
# Check the working directory
|
||||
|
@ -100,7 +105,7 @@ class CmdLineTest(unittest.TestCase):
|
|||
*cmd_line_switches):
|
||||
if not __debug__:
|
||||
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)
|
||||
self._check_output(script_name, rc, out + err, expected_file,
|
||||
expected_argv0, expected_path0, expected_package)
|
||||
|
@ -240,7 +245,7 @@ class CmdLineTest(unittest.TestCase):
|
|||
pkg_dir = os.path.join(script_dir, 'test_pkg')
|
||||
make_pkg(pkg_dir, "import sys; print('init_argv0==%r' % sys.argv[0])")
|
||||
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:
|
||||
print(out)
|
||||
expected = "init_argv0==%r" % '-m'
|
||||
|
@ -270,7 +275,7 @@ class CmdLineTest(unittest.TestCase):
|
|||
with support.temp_cwd(path=script_dir):
|
||||
with open("-m", "w") as f:
|
||||
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,
|
||||
script_name, script_name, '', '')
|
||||
|
||||
|
|
|
@ -146,6 +146,9 @@ Library
|
|||
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
|
||||
message (Patch by Jason Yeo)
|
||||
|
||||
|
|
Loading…
Reference in New Issue