Fix os.get_exec_path() (code and tests) for python -bb

Catch BytesWarning exceptions.
diff --git a/Lib/os.py b/Lib/os.py
index 60dc12f..02e8f14 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -387,13 +387,13 @@
 
     try:
         path_list = env.get('PATH')
-    except TypeError:
+    except (TypeError, BytesWarning):
         path_list = None
 
     if supports_bytes_environ:
         try:
             path_listb = env[b'PATH']
-        except (KeyError, TypeError):
+        except (KeyError, TypeError, BytesWarning):
             pass
         else:
             if path_list is not None:
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 4910b1e..710a3f4 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -450,8 +450,12 @@
 
         if os.supports_bytes_environ:
             # env cannot contain 'PATH' and b'PATH' keys
-            self.assertRaises(ValueError,
-                os.get_exec_path, {'PATH': '1', b'PATH': b'2'})
+            try:
+                mixed_env = {'PATH': '1', b'PATH': b'2'}
+            except BytesWarning:
+                pass
+            else:
+                self.assertRaises(ValueError, os.get_exec_path, mixed_env)
 
             # bytes key and/or value
             self.assertSequenceEqual(os.get_exec_path({b'PATH': b'abc'}),
@@ -723,7 +727,10 @@
         # os.get_exec_path() reads the 'PATH' variable
         with _execvpe_mockup() as calls:
             env_path = env.copy()
-            env_path['PATH'] = program_path
+            if test_type is bytes:
+                env_path[b'PATH'] = program_path
+            else:
+                env_path['PATH'] = program_path
             self.assertRaises(OSError,
                 os._execvpe, program, arguments, env=env_path)
             self.assertEqual(len(calls), 1)