Skip to content

Commit f697cd5

Browse files
committed
gh-137586: Add tests for MacOSX browser class and MacOSXOSAScript deprecation
Add MacOSXTest covering default browser open, named browser open, and failure case (non-zero returncode). Add MacOSXOSAScriptDeprecationTest verifying that instantiating MacOSXOSAScript emits a DeprecationWarning. All tests mock subprocess.run.
1 parent 00fa6c7 commit f697cd5

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Lib/test/test_webbrowser.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,49 @@ def close(self):
323323
return None
324324

325325

326+
@unittest.skipUnless(sys.platform == "darwin", "macOS specific test")
327+
@requires_subprocess()
328+
class MacOSXTest(unittest.TestCase):
329+
330+
def test_default_open(self):
331+
browser = webbrowser.MacOSX('default')
332+
with mock.patch('subprocess.run') as mock_run:
333+
mock_run.return_value = mock.Mock(returncode=0)
334+
result = browser.open(URL)
335+
mock_run.assert_called_once_with(
336+
['/usr/bin/open', URL],
337+
stderr=subprocess.DEVNULL,
338+
)
339+
self.assertTrue(result)
340+
341+
def test_named_open(self):
342+
browser = webbrowser.MacOSX('safari')
343+
with mock.patch('subprocess.run') as mock_run:
344+
mock_run.return_value = mock.Mock(returncode=0)
345+
result = browser.open(URL)
346+
mock_run.assert_called_once_with(
347+
['/usr/bin/open', '-a', 'safari', URL],
348+
stderr=subprocess.DEVNULL,
349+
)
350+
self.assertTrue(result)
351+
352+
def test_open_failure(self):
353+
browser = webbrowser.MacOSX('default')
354+
with mock.patch('subprocess.run') as mock_run:
355+
mock_run.return_value = mock.Mock(returncode=1)
356+
result = browser.open(URL)
357+
self.assertFalse(result)
358+
359+
360+
@unittest.skipUnless(sys.platform == "darwin", "macOS specific test")
361+
@requires_subprocess()
362+
class MacOSXOSAScriptDeprecationTest(unittest.TestCase):
363+
364+
def test_deprecation_warning(self):
365+
with self.assertWarns(DeprecationWarning):
366+
webbrowser.MacOSXOSAScript('default')
367+
368+
326369
@unittest.skipUnless(sys.platform == "darwin", "macOS specific test")
327370
@requires_subprocess()
328371
class MacOSXOSAScriptTest(unittest.TestCase):

0 commit comments

Comments
 (0)