]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109295: Skip test_generated_cases if different mount drives (#109308)
authorVictor Stinner <vstinner@python.org>
Tue, 12 Sep 2023 02:30:07 +0000 (04:30 +0200)
committerGitHub <noreply@github.com>
Tue, 12 Sep 2023 02:30:07 +0000 (04:30 +0200)
On Windows, skip the test if the current working directory and the
Python source code directory have different mount drives. It happens
if the temporary directory is on a different mount drive than the
Python source code.

Lib/test/test_generated_cases.py

index be3dfd204ee143355baa9329e313daa795051a83..b5eaf824aee7061579ebd1ddd2602197a6c9632e 100644 (file)
@@ -1,11 +1,31 @@
 import contextlib
+import os
+import sys
 import tempfile
 import unittest
-import os
 
 from test import support
 from test import test_tools
 
+
+def skip_if_different_mount_drives():
+    if sys.platform != 'win32':
+        return
+    ROOT = os.path.dirname(os.path.dirname(__file__))
+    root_drive = os.path.splitroot(ROOT)[0]
+    cwd_drive = os.path.splitroot(os.getcwd())[0]
+    if root_drive != cwd_drive:
+        # generate_cases.py uses relpath() which raises ValueError if ROOT
+        # and the current working different have different mount drives
+        # (on Windows).
+        raise unittest.SkipTest(
+            f"the current working directory and the Python source code "
+            f"directory have different mount drives "
+            f"({cwd_drive} and {root_drive})"
+        )
+skip_if_different_mount_drives()
+
+
 test_tools.skip_if_missing('cases_generator')
 with test_tools.imports_under_tool('cases_generator'):
     import generate_cases