bpo-35308: Fix regression where BROWSER env var is not respected. (GH-10693)


Regression introduced in e3ce695 and 25b804a, where the old parameter
update_tryorder to _synthesize was first ignored, then given the opposite
value in the attempt to fix bpo-31014.
(cherry picked from commit 8c281ed403fd915284d5bba2405d7c47f8195066)

Co-authored-by: Zhiming Wang <i@zhimingwang.org>
diff --git a/Lib/test/test_webbrowser.py b/Lib/test/test_webbrowser.py
index 71f2e27..519a943 100644
--- a/Lib/test/test_webbrowser.py
+++ b/Lib/test/test_webbrowser.py
@@ -309,6 +309,24 @@
             webbrowser = support.import_fresh_module('webbrowser')
             webbrowser.get()
 
+    def test_environment_preferred(self):
+        webbrowser = support.import_fresh_module('webbrowser')
+        try:
+            webbrowser.get()
+            least_preferred_browser = webbrowser.get(webbrowser._tryorder[-1]).name
+        except (webbrowser.Error, AttributeError, IndexError) as err:
+            self.skipTest(str(err))
+
+        with support.EnvironmentVarGuard() as env:
+            env["BROWSER"] = least_preferred_browser
+            webbrowser = support.import_fresh_module('webbrowser')
+            self.assertEqual(webbrowser.get().name, least_preferred_browser)
+
+        with support.EnvironmentVarGuard() as env:
+            env["BROWSER"] = sys.executable
+            webbrowser = support.import_fresh_module('webbrowser')
+            self.assertEqual(webbrowser.get().name, sys.executable)
+
 
 if __name__=='__main__':
     unittest.main()