Skip to content

Commit da37468

Browse files
committed
IDLE tests: use addCleanup for tempfile removal in test_iomenu
1 parent 5f5e769 commit da37468

File tree

1 file changed

+45
-51
lines changed

1 file changed

+45
-51
lines changed

Lib/idlelib/idle_test/test_iomenu.py

Lines changed: 45 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,20 @@ def test_reload_with_file(self):
8686
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.py') as f:
8787
f.write("# Original content\n")
8888
temp_filename = f.name
89+
self.addCleanup(os.unlink, temp_filename)
8990

90-
try:
91-
# Load the file
92-
io.loadfile(temp_filename)
93-
self.assertEqual(text.get('1.0', 'end-1c'), "# Original content\n")
91+
# Load the file
92+
io.loadfile(temp_filename)
93+
self.assertEqual(text.get('1.0', 'end-1c'), "# Original content\n")
9494

95-
# Modify the file content externally
96-
with builtins.open(temp_filename, 'w') as f:
97-
f.write("# Modified content\n")
95+
# Modify the file content externally
96+
with builtins.open(temp_filename, 'w') as f:
97+
f.write("# Modified content\n")
9898

99-
# Reload should update the content
100-
result = io.reload(None)
101-
self.assertEqual(result, "break")
102-
self.assertEqual(text.get('1.0', 'end-1c'), "# Modified content\n")
103-
finally:
104-
os.unlink(temp_filename)
99+
# Reload should update the content
100+
result = io.reload(None)
101+
self.assertEqual(result, "break")
102+
self.assertEqual(text.get('1.0', 'end-1c'), "# Modified content\n")
105103

106104
def test_reload_with_unsaved_changes_cancel(self):
107105
# Test reload with unsaved changes and user cancels
@@ -113,28 +111,26 @@ def test_reload_with_unsaved_changes_cancel(self):
113111
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.py') as f:
114112
f.write("# Original content\n")
115113
temp_filename = f.name
114+
self.addCleanup(os.unlink, temp_filename)
115+
116+
# Load the file
117+
io.loadfile(temp_filename)
118+
119+
# Make unsaved changes
120+
text.insert('end-1c', "\n# Unsaved change")
121+
io.set_saved(False)
122+
123+
# Mock askokcancel to return False (cancel)
124+
orig_askokcancel = iomenu.messagebox.askokcancel
125+
iomenu.messagebox.askokcancel = lambda *args, **kwargs: False
116126

117127
try:
118-
# Load the file
119-
io.loadfile(temp_filename)
120-
121-
# Make unsaved changes
122-
text.insert('end-1c', "\n# Unsaved change")
123-
io.set_saved(False)
124-
125-
# Mock askokcancel to return False (cancel)
126-
orig_askokcancel = iomenu.messagebox.askokcancel
127-
iomenu.messagebox.askokcancel = lambda *args, **kwargs: False
128-
129-
try:
130-
result = io.reload(None)
131-
self.assertEqual(result, "break")
132-
# Content should not change
133-
self.assertIn("# Unsaved change", text.get('1.0', 'end-1c'))
134-
finally:
135-
iomenu.messagebox.askokcancel = orig_askokcancel
128+
result = io.reload(None)
129+
self.assertEqual(result, "break")
130+
# Content should not change
131+
self.assertIn("# Unsaved change", text.get('1.0', 'end-1c'))
136132
finally:
137-
os.unlink(temp_filename)
133+
iomenu.messagebox.askokcancel = orig_askokcancel
138134

139135
def test_reload_with_unsaved_changes_confirm(self):
140136
# Test reload with unsaved changes and user confirms
@@ -146,28 +142,26 @@ def test_reload_with_unsaved_changes_confirm(self):
146142
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.py') as f:
147143
f.write("# Original content\n")
148144
temp_filename = f.name
145+
self.addCleanup(os.unlink, temp_filename)
146+
147+
# Load the file
148+
io.loadfile(temp_filename)
149+
150+
# Make unsaved changes
151+
text.insert('end-1c', "\n# Unsaved change")
152+
io.set_saved(False)
153+
154+
# Mock askokcancel to return True (confirm)
155+
orig_askokcancel = iomenu.messagebox.askokcancel
156+
iomenu.messagebox.askokcancel = lambda *args, **kwargs: True
149157

150158
try:
151-
# Load the file
152-
io.loadfile(temp_filename)
153-
154-
# Make unsaved changes
155-
text.insert('end-1c', "\n# Unsaved change")
156-
io.set_saved(False)
157-
158-
# Mock askokcancel to return True (confirm)
159-
orig_askokcancel = iomenu.messagebox.askokcancel
160-
iomenu.messagebox.askokcancel = lambda *args, **kwargs: True
161-
162-
try:
163-
result = io.reload(None)
164-
self.assertEqual(result, "break")
165-
# Content should be reverted to original
166-
self.assertEqual(text.get('1.0', 'end-1c'), "# Original content\n")
167-
finally:
168-
iomenu.messagebox.askokcancel = orig_askokcancel
159+
result = io.reload(None)
160+
self.assertEqual(result, "break")
161+
# Content should be reverted to original
162+
self.assertEqual(text.get('1.0', 'end-1c'), "# Original content\n")
169163
finally:
170-
os.unlink(temp_filename)
164+
iomenu.messagebox.askokcancel = orig_askokcancel
171165

172166

173167
def _extension_in_filetypes(extension):

0 commit comments

Comments
 (0)