summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2018-08-25 07:27:55 (GMT)
committerGitHub <noreply@github.com>2018-08-25 07:27:55 (GMT)
commitc406d5cd74002964a64c3eb7d9e2445a7fd3a03f (patch)
treed762f8be37e446fecb49d58c4148f81d225c2457
parent8fdd331bbf7e60dd81c02c7077f44c7939e2a05d (diff)
downloadcpython-c406d5cd74002964a64c3eb7d9e2445a7fd3a03f.zip
cpython-c406d5cd74002964a64c3eb7d9e2445a7fd3a03f.tar.gz
cpython-c406d5cd74002964a64c3eb7d9e2445a7fd3a03f.tar.bz2
bpo-34171: Prevent creating Lib/trace.cover when run the trace module. (GH-8841)
-rw-r--r--Lib/test/test_trace.py5
-rwxr-xr-xLib/trace.py14
-rw-r--r--Misc/NEWS.d/next/Library/2018-08-21-00-29-01.bpo-34171.6LkWav.rst1
3 files changed, 10 insertions, 10 deletions
diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py
index dc9b3fa..3b335ca 100644
--- a/Lib/test/test_trace.py
+++ b/Lib/test/test_trace.py
@@ -387,6 +387,11 @@ class TestCoverageCommandLineOutput(unittest.TestCase):
def test_cover_files_written_no_highlight(self):
argv = '-m trace --count'.split() + [self.codefile]
status, stdout, stderr = assert_python_ok(*argv)
+ self.assertEqual(stderr, b'')
+ tracedir = os.path.dirname(os.path.abspath(trace.__file__))
+ tracecoverpath = os.path.join(tracedir, "trace.cover")
+ self.assertFalse(os.path.exists(tracecoverpath))
+
self.assertTrue(os.path.exists(self.coverfile))
with open(self.coverfile) as f:
self.assertEqual(f.read(),
diff --git a/Lib/trace.py b/Lib/trace.py
index 16c3494..86b2101 100755
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -63,14 +63,6 @@ from time import monotonic as _time
import threading
-def _settrace(func):
- threading.settrace(func)
- sys.settrace(func)
-
-def _unsettrace():
- sys.settrace(None)
- threading.settrace(None)
-
PRAGMA_NOCOVER = "#pragma NO COVER"
class _Ignore:
@@ -451,12 +443,14 @@ class Trace:
if globals is None: globals = {}
if locals is None: locals = {}
if not self.donothing:
- _settrace(self.globaltrace)
+ threading.settrace(self.globaltrace)
+ sys.settrace(self.globaltrace)
try:
exec(cmd, globals, locals)
finally:
if not self.donothing:
- _unsettrace()
+ sys.settrace(None)
+ threading.settrace(None)
def runfunc(self, func, *args, **kw):
result = None
diff --git a/Misc/NEWS.d/next/Library/2018-08-21-00-29-01.bpo-34171.6LkWav.rst b/Misc/NEWS.d/next/Library/2018-08-21-00-29-01.bpo-34171.6LkWav.rst
new file mode 100644
index 0000000..f647b8e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-08-21-00-29-01.bpo-34171.6LkWav.rst
@@ -0,0 +1 @@
+Running the :mod:`trace` module no longer creates the ``trace.cover`` file.