From 4ad15efde96dd4272ea1d4b24089b8973a89c179 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 12 Sep 2023 03:50:53 +0200 Subject: [PATCH] gh-109295: Skip test_generated_cases if different mount drives 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 | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_generated_cases.py b/Lib/test/test_generated_cases.py index be3dfd204ee143..b5eaf824aee706 100644 --- a/Lib/test/test_generated_cases.py +++ b/Lib/test/test_generated_cases.py @@ -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