Bug report
Bug description:
After updating today, test_webbrowser is failing on my Mac (M1 MBP, up-to-date MacOS 26.4.1). Here's the failure in isolation:
% ./python.exe -m test -v test_webbrowser
== CPython 3.15.0a8+ free-threading build (heads/main:299cf3c4974, May 7 2026, 11:09:40) [Clang 22.1.4 ]
== macOS-26.4.1-arm64-arm-64bit-Mach-O little-endian
== Python build: free_threading release
== cwd: /Users/skip/src/python/cpython/build/test_python_worker_29041æ
== CPU count: 8
== encodings: locale=UTF-8 FS=utf-8
== resources: all test resources are disabled, use -u option to unskip tests
Using random seed: 2341159228
0:00:00 load avg: 2.05 Run 1 test sequentially in a single process
0:00:00 load avg: 2.05 [1/1] test_webbrowser
test_open (test.test_webbrowser.BackgroundBrowserCommandTest.test_open) ... ok
test_reject_dash_prefixes (test.test_webbrowser.BackgroundBrowserCommandTest.test_reject_dash_prefixes) ... ok
test_no_xdg_settings_on_macOS (test.test_webbrowser.BrowserRegistrationTest.test_no_xdg_settings_on_macOS) ... ok
test_register (test.test_webbrowser.BrowserRegistrationTest.test_register) ... ok
test_register_default (test.test_webbrowser.BrowserRegistrationTest.test_register_default) ... ok
test_register_preferred (test.test_webbrowser.BrowserRegistrationTest.test_register_preferred) ... ok
test_open (test.test_webbrowser.ChromeCommandTest.test_open) ... ok
test_open_bad_new_parameter (test.test_webbrowser.ChromeCommandTest.test_open_bad_new_parameter) ... ok
test_open_new (test.test_webbrowser.ChromeCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.ChromeCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.ChromeCommandTest.test_open_with_autoraise_false) ... ok
test_reject_action_dash_prefixes (test.test_webbrowser.ChromeCommandTest.test_reject_action_dash_prefixes) ... ok
test_reject_dash_prefixes (test.test_webbrowser.ChromeCommandTest.test_reject_dash_prefixes) ... ok
test_main (test.test_webbrowser.CliTest.test_main) ... ok
test_parse_args (test.test_webbrowser.CliTest.test_parse_args) ... ok
test_parse_args_error (test.test_webbrowser.CliTest.test_parse_args_error) ... ok
test_open (test.test_webbrowser.ELinksCommandTest.test_open) ... ok
test_open_new (test.test_webbrowser.ELinksCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.ELinksCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.ELinksCommandTest.test_open_with_autoraise_false) ... ok
test_reject_dash_prefixes (test.test_webbrowser.ELinksCommandTest.test_reject_dash_prefixes) ... ok
test_open (test.test_webbrowser.EdgeCommandTest.test_open) ... ok
test_open_new (test.test_webbrowser.EdgeCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.EdgeCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.EdgeCommandTest.test_open_with_autoraise_false) ... ok
test_reject_dash_prefixes (test.test_webbrowser.EdgeCommandTest.test_reject_dash_prefixes) ... ok
test_open (test.test_webbrowser.EpiphanyCommandTest.test_open) ... ok
test_open_new (test.test_webbrowser.EpiphanyCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.EpiphanyCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.EpiphanyCommandTest.test_open_with_autoraise_false) ... ok
test_reject_dash_prefixes (test.test_webbrowser.EpiphanyCommandTest.test_reject_dash_prefixes) ... ok
test_open (test.test_webbrowser.GenericBrowserCommandTest.test_open) ... ok
test_reject_dash_prefixes (test.test_webbrowser.GenericBrowserCommandTest.test_reject_dash_prefixes) ... ok
test_open (test.test_webbrowser.IOSBrowserTest.test_open) ... skipped 'Test only applicable to iOS'
test_open_new (test.test_webbrowser.IOSBrowserTest.test_open_new) ... skipped 'Test only applicable to iOS'
test_open_new_tab (test.test_webbrowser.IOSBrowserTest.test_open_new_tab) ... skipped 'Test only applicable to iOS'
test_open_with_autoraise_false (test.test_webbrowser.IOSBrowserTest.test_open_with_autoraise_false) ... skipped 'Test only applicable to iOS'
test_environment (test.test_webbrowser.ImportTest.test_environment) ... ok
test_environment_preferred (test.test_webbrowser.ImportTest.test_environment_preferred) ... ok
test_get (test.test_webbrowser.ImportTest.test_get) ... ok
test_register (test.test_webbrowser.ImportTest.test_register) ... ok
test_synthesize (test.test_webbrowser.ImportTest.test_synthesize) ... ok
test_default (test.test_webbrowser.MacOSTest.test_default) ... FAIL
test_default_http_open (test.test_webbrowser.MacOSTest.test_default_http_open) ... ok
test_default_non_http_uses_bundle_id (test.test_webbrowser.MacOSTest.test_default_non_http_uses_bundle_id) ... ok
test_named_known_browser_uses_bundle_id (test.test_webbrowser.MacOSTest.test_named_known_browser_uses_bundle_id) ... ok
test_named_unknown_browser_falls_back_to_dash_a (test.test_webbrowser.MacOSTest.test_named_unknown_browser_falls_back_to_dash_a) ... ok
test_open_failure (test.test_webbrowser.MacOSTest.test_open_failure) ... ok
test_deprecation_warning (test.test_webbrowser.MacOSXOSAScriptDeprecationTest.test_deprecation_warning) ... ok
test_default_browser_lookup (test.test_webbrowser.MacOSXOSAScriptTest.test_default_browser_lookup) ... ok
test_default_open (test.test_webbrowser.MacOSXOSAScriptTest.test_default_open) ... ok
test_explicit_browser (test.test_webbrowser.MacOSXOSAScriptTest.test_explicit_browser) ... ok
test_reject_dash_prefixes (test.test_webbrowser.MacOSXOSAScriptTest.test_reject_dash_prefixes) ... ok
test_url_quote (test.test_webbrowser.MacOSXOSAScriptTest.test_url_quote) ... ok
test_open (test.test_webbrowser.MozillaCommandTest.test_open) ... ok
test_open_new (test.test_webbrowser.MozillaCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.MozillaCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.MozillaCommandTest.test_open_with_autoraise_false) ... ok
test_reject_dash_prefixes (test.test_webbrowser.MozillaCommandTest.test_reject_dash_prefixes) ... ok
test_open (test.test_webbrowser.OperaCommandTest.test_open) ... ok
test_open_new (test.test_webbrowser.OperaCommandTest.test_open_new) ... ok
test_open_new_tab (test.test_webbrowser.OperaCommandTest.test_open_new_tab) ... ok
test_open_with_autoraise_false (test.test_webbrowser.OperaCommandTest.test_open_with_autoraise_false) ... ok
test_reject_dash_prefixes (test.test_webbrowser.OperaCommandTest.test_reject_dash_prefixes) ... ok
======================================================================
FAIL: test_default (test.test_webbrowser.MacOSTest.test_default)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/skip/src/python/cpython/Lib/test/test_webbrowser.py", line 345, in test_default
self.assertIsInstance(browser, webbrowser.MacOS)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: <webbrowser.GenericBrowser object at 0x3e9fdbe80d0> is not an instance of <class 'webbrowser.MacOS'>
----------------------------------------------------------------------
Ran 64 tests in 0.028s
FAILED (failures=1, skipped=4)
test test_webbrowser failed
0:00:00 load avg: 2.05 [1/1/1] test_webbrowser failed (1 failure)
== Tests result: FAILURE ==
1 test failed:
test_webbrowser
Total duration: 90 ms
Total tests: run=64 failures=1 skipped=4
Total test files: run=1/1 failed=1
Result: FAILURE
My BROWSER environment variable is set to open, pretty typical I would think for a Mac:
% env | grep BROWSER
BROWSER=open
Unsetting it allows the test to pass...
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Bug report
Bug description:
After updating today,
test_webbrowseris failing on my Mac (M1 MBP, up-to-date MacOS 26.4.1). Here's the failure in isolation:My
BROWSERenvironment variable is set toopen, pretty typical I would think for a Mac:Unsetting it allows the test to pass...
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS