bpo-31014: Fix the webbrowser module. (GH-7267)


webbrowser._synthesize() called webbrowser.register() with
outdated signature.

Co-Authored-By: John Still <john@jmsdvl.com>
(cherry picked from commit 25b804a9c21c735ce322877f105ebab2539ccfc1)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
diff --git a/Lib/test/test_webbrowser.py b/Lib/test/test_webbrowser.py
index 7a396bd..71f2e27 100644
--- a/Lib/test/test_webbrowser.py
+++ b/Lib/test/test_webbrowser.py
@@ -1,5 +1,7 @@
 import webbrowser
 import unittest
+import os
+import sys
 import subprocess
 from unittest import mock
 from test import support
@@ -290,6 +292,23 @@
             webbrowser.get('fakebrowser')
         self.assertIsNotNone(webbrowser._tryorder)
 
+    def test_synthesize(self):
+        webbrowser = support.import_fresh_module('webbrowser')
+        name = os.path.basename(sys.executable).lower()
+        webbrowser.register(name, None, webbrowser.GenericBrowser(name))
+        webbrowser.get(sys.executable)
+
+    def test_environment(self):
+        webbrowser = support.import_fresh_module('webbrowser')
+        try:
+            browser = webbrowser.get().name
+        except (webbrowser.Error, AttributeError) as err:
+            self.skipTest(str(err))
+        with support.EnvironmentVarGuard() as env:
+            env["BROWSER"] = browser
+            webbrowser = support.import_fresh_module('webbrowser')
+            webbrowser.get()
+
 
 if __name__=='__main__':
     unittest.main()