[pypy-commit] pypy py3k: cpython issue8202: include -m in the initial argv (more like -c does)
pjenvey
noreply at buildbot.pypy.org
Sat Feb 23 00:30:04 CET 2013
Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r61627:680b7dc2e00a
Date: 2013-02-22 15:21 -0800
http://bitbucket.org/pypy/pypy/changeset/680b7dc2e00a/
Log: cpython issue8202: include -m in the initial argv (more like -c
does)
diff --git a/pypy/interpreter/app_main.py b/pypy/interpreter/app_main.py
--- a/pypy/interpreter/app_main.py
+++ b/pypy/interpreter/app_main.py
@@ -322,8 +322,8 @@
return ['-c'] + list(iterargv)
def m_option(options, runmodule, iterargv):
- options["run_module"] = True
- return [runmodule] + list(iterargv)
+ options["run_module"] = runmodule
+ return ['-m'] + list(iterargv)
def W_option(options, warnoption, iterargv):
options["warnoptions"].append(warnoption)
@@ -534,12 +534,12 @@
def run_it():
exec_(run_command, mainmodule.__dict__)
success = run_toplevel(run_it)
- elif run_module:
+ elif run_module != 0:
# handle the "-m" command
# '' on sys.path is required also here
sys.path.insert(0, '')
import runpy
- success = run_toplevel(runpy._run_module_as_main, sys.argv[0])
+ success = run_toplevel(runpy._run_module_as_main, run_module)
elif run_stdin:
# handle the case where no command/filename/module is specified
# on the command-line.
diff --git a/pypy/interpreter/test2/test_app_main.py b/pypy/interpreter/test2/test_app_main.py
--- a/pypy/interpreter/test2/test_app_main.py
+++ b/pypy/interpreter/test2/test_app_main.py
@@ -151,14 +151,14 @@
no_site=1)
self.check(['-Scpass'], {}, sys_argv=['-c'], run_command='pass', no_site=1)
self.check(['-c', '', ''], {}, sys_argv=['-c', ''], run_command='')
- self.check(['-mfoo', 'bar', 'baz'], {}, sys_argv=['foo', 'bar', 'baz'],
- run_module=True)
- self.check(['-m', 'foo', 'bar', 'baz'], {}, sys_argv=['foo', 'bar', 'baz'],
- run_module=True)
- self.check(['-Smfoo', 'bar', 'baz'], {}, sys_argv=['foo', 'bar', 'baz'],
- run_module=True, no_site=1)
- self.check(['-Sm', 'foo', 'bar', 'baz'], {}, sys_argv=['foo', 'bar', 'baz'],
- run_module=True, no_site=1)
+ self.check(['-mfoo', 'bar', 'baz'], {}, sys_argv=['-m', 'bar', 'baz'],
+ run_module='foo')
+ self.check(['-m', 'foo', 'bar', 'baz'], {}, sys_argv=['-m', 'bar', 'baz'],
+ run_module='foo')
+ self.check(['-Smfoo', 'bar', 'baz'], {}, sys_argv=['-m', 'bar', 'baz'],
+ run_module='foo', no_site=1)
+ self.check(['-Sm', 'foo', 'bar', 'baz'], {}, sys_argv=['-m', 'bar', 'baz'],
+ run_module='foo', no_site=1)
self.check(['-', 'foo', 'bar'], {}, sys_argv=['-', 'foo', 'bar'],
run_stdin=True)
self.check(['foo', 'bar'], {}, sys_argv=['foo', 'bar'])
@@ -694,6 +694,17 @@
assert ('File: ' + p) in data
assert ('Argv: ' + repr([p, 'extra'])) in data
+ def test_option_m_package(self, monkeypatch):
+ if not hasattr(runpy, '_run_module_as_main'):
+ skip("requires CPython >= 2.6")
+ p = os.path.join(os.path.realpath(os.path.dirname(__file__)),
+ 'mypackage', '__main__.py')
+ p = os.path.abspath(p)
+ monkeypatch.chdir(os.path.dirname(app_main))
+ data = self.run('-m test2.mypackage extra')
+ assert "__init__ argv: ['-m', 'extra']" in data
+ assert "__main__ argv: [%r, 'extra']" % p in data
+
def test_pythoninspect_doesnt_override_isatty(self):
os.environ['PYTHONINSPECT_'] = '1'
try:
More information about the pypy-commit
mailing list