diff options
author | Jesse-Bakker <jessebakker00@gmail.com> | 2017-11-30 00:05:07 +0100 |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2017-11-30 00:05:07 +0100 |
commit | 706e10b186992e086e661a62d2c8ec9588525b31 (patch) | |
tree | 6ef28e2e18a1183757d3a31236c2b5e8b4434254 /Lib/test | |
parent | 859f7ce7a49f8bd6309748c05e460c10f6a433ed (diff) | |
download | cpython-git-706e10b186992e086e661a62d2c8ec9588525b31.tar.gz |
bpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534)
* Add most_recent_first parameter to tracemalloc.Traceback.format to allow
reversing the order of the frames in the output
* Reversed default sorting of tracemalloc.Traceback frames
* Allowed negative limit, truncating from the other side.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_tracemalloc.py | 30 | ||||
-rw-r--r-- | Lib/test/test_warnings/__init__.py | 6 |
2 files changed, 27 insertions, 9 deletions
diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py index 533ba6dc46..b0a0e1b2d7 100644 --- a/Lib/test/test_tracemalloc.py +++ b/Lib/test/test_tracemalloc.py @@ -171,6 +171,9 @@ class TestTracemallocEnabled(unittest.TestCase): traces = tracemalloc._get_traces() + obj1_traceback._frames = tuple(reversed(obj1_traceback._frames)) + obj2_traceback._frames = tuple(reversed(obj2_traceback._frames)) + trace1 = self.find_trace(traces, obj1_traceback) trace2 = self.find_trace(traces, obj2_traceback) domain1, size1, traceback1 = trace1 @@ -537,11 +540,11 @@ class TestSnapshot(unittest.TestCase): def test_trace_format(self): snapshot, snapshot2 = create_snapshots() trace = snapshot.traces[0] - self.assertEqual(str(trace), 'a.py:2: 10 B') + self.assertEqual(str(trace), 'b.py:4: 10 B') traceback = trace.traceback - self.assertEqual(str(traceback), 'a.py:2') + self.assertEqual(str(traceback), 'b.py:4') frame = traceback[0] - self.assertEqual(str(frame), 'a.py:2') + self.assertEqual(str(frame), 'b.py:4') def test_statistic_format(self): snapshot, snapshot2 = create_snapshots() @@ -574,17 +577,32 @@ class TestSnapshot(unittest.TestCase): side_effect=getline): tb = snapshot.traces[0].traceback self.assertEqual(tb.format(), + [' File "b.py", line 4', + ' <b.py, 4>', + ' File "a.py", line 2', + ' <a.py, 2>']) + + self.assertEqual(tb.format(limit=1), + [' File "a.py", line 2', + ' <a.py, 2>']) + + self.assertEqual(tb.format(limit=-1), + [' File "b.py", line 4', + ' <b.py, 4>']) + + self.assertEqual(tb.format(most_recent_first=True), [' File "a.py", line 2', ' <a.py, 2>', ' File "b.py", line 4', ' <b.py, 4>']) - self.assertEqual(tb.format(limit=1), + self.assertEqual(tb.format(limit=1, most_recent_first=True), [' File "a.py", line 2', ' <a.py, 2>']) - self.assertEqual(tb.format(limit=-1), - []) + self.assertEqual(tb.format(limit=-1, most_recent_first=True), + [' File "b.py", line 4', + ' <b.py, 4>']) class TestFilters(unittest.TestCase): diff --git a/Lib/test/test_warnings/__init__.py b/Lib/test/test_warnings/__init__.py index f2fdaa5386..e60bc4d27f 100644 --- a/Lib/test/test_warnings/__init__.py +++ b/Lib/test/test_warnings/__init__.py @@ -941,11 +941,11 @@ class PyWarningsDisplayTests(WarningsDisplayTests, unittest.TestCase): expected = textwrap.dedent(''' {fname}:5: ResourceWarning: unclosed file <...> f = None - Object allocated at (most recent call first): - File "{fname}", lineno 3 - f = open(__file__) + Object allocated at (most recent call last): File "{fname}", lineno 7 func() + File "{fname}", lineno 3 + f = open(__file__) ''') expected = expected.format(fname=support.TESTFN).strip() self.assertEqual(stderr, expected) |