Skip to content

Commit 44aa603

Browse files
authored
gh-57879: Increase test coverage for pstats.py (gh-111447)
1 parent d67f947 commit 44aa603

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

Lib/test/test_pstats.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
from pstats import SortKey
66
from enum import StrEnum, _test_simple_enum
77

8+
import os
89
import pstats
10+
import tempfile
911
import cProfile
1012

1113
class AddCallersTestCase(unittest.TestCase):
@@ -36,6 +38,33 @@ def test_add(self):
3638
stats = pstats.Stats(stream=stream)
3739
stats.add(self.stats, self.stats)
3840

41+
def test_dump_and_load_works_correctly(self):
42+
temp_storage_new = tempfile.NamedTemporaryFile(delete=False)
43+
try:
44+
self.stats.dump_stats(filename=temp_storage_new.name)
45+
tmp_stats = pstats.Stats(temp_storage_new.name)
46+
self.assertEqual(self.stats.stats, tmp_stats.stats)
47+
finally:
48+
temp_storage_new.close()
49+
os.remove(temp_storage_new.name)
50+
51+
def test_load_equivalent_to_init(self):
52+
stats = pstats.Stats()
53+
self.temp_storage = tempfile.NamedTemporaryFile(delete=False)
54+
try:
55+
cProfile.run('import os', filename=self.temp_storage.name)
56+
stats.load_stats(self.temp_storage.name)
57+
created = pstats.Stats(self.temp_storage.name)
58+
self.assertEqual(stats.stats, created.stats)
59+
finally:
60+
self.temp_storage.close()
61+
os.remove(self.temp_storage.name)
62+
63+
def test_loading_wrong_types(self):
64+
stats = pstats.Stats()
65+
with self.assertRaises(TypeError):
66+
stats.load_stats(42)
67+
3968
def test_sort_stats_int(self):
4069
valid_args = {-1: 'stdname',
4170
0: 'calls',

0 commit comments

Comments
 (0)