summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/control.py11
-rw-r--r--coverage/execfile.py8
2 files changed, 15 insertions, 4 deletions
diff --git a/coverage/control.py b/coverage/control.py
index 47e5b508..7a85103b 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -322,9 +322,14 @@ class Coverage(object):
return dunder_name
loader = module_namespace.get('__loader__', None)
- if hasattr(loader, 'fullname') and isinstance(loader.fullname, str):
- # module loaded via runpy -m
- return loader.fullname
+ for attrname in ('fullname', 'name'): # attribute renamed in py3.2
+ if (
+ hasattr(loader, 'fullname') and
+ isinstance(loader.fullname, str) and
+ loader.fullname != '__main__'
+ ):
+ # module loaded via runpy -m
+ return loader.fullname
# script as first argument to python cli
inspectedname = inspect.getmodulename(filename)
diff --git a/coverage/execfile.py b/coverage/execfile.py
index f03713ec..4b5f3af4 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -7,6 +7,12 @@ from coverage.backward import PYC_MAGIC_NUMBER, imp, importlib_util_find_spec
from coverage.misc import ExceptionDuringRun, NoCode, NoSource
+if sys.version_info >= (3, 3):
+ DEFAULT_FULLNAME = '__main__'
+else:
+ DEFAULT_FULLNAME = None
+
+
class DummyLoader(object):
"""A shim for the pep302 __loader__, emulating pkgutil.ImpLoader.
@@ -104,7 +110,7 @@ def run_python_module(modulename, args):
run_python_file(pathname, args, package=packagename, modulename=modulename)
-def run_python_file(filename, args, package=None, modulename=None):
+def run_python_file(filename, args, package=None, modulename=DEFAULT_FULLNAME):
"""Run a python file as if it were the main program on the command line.
`filename` is the path to the file to execute, it need not be a .py file.