Use regex where we ignore case on windows (#4252)

On windows the path `FoObAR` is the same as `foobar`, so the output
of `black` on a windows machine could output the path to `.gitignore`
with an upper or lower-case drive letter.
This commit is contained in:
Kai Sforza 2024-03-13 00:22:10 -04:00 committed by GitHub
parent 719e67462c
commit 1abcffc818
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -14,7 +14,7 @@
from contextlib import contextmanager, redirect_stderr from contextlib import contextmanager, redirect_stderr
from dataclasses import replace from dataclasses import replace
from io import BytesIO from io import BytesIO
from pathlib import Path from pathlib import Path, WindowsPath
from platform import system from platform import system
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
from typing import ( from typing import (
@ -2460,7 +2460,11 @@ def test_invalid_gitignore(self) -> None:
assert result.stderr_bytes is not None assert result.stderr_bytes is not None
gitignore = path / ".gitignore" gitignore = path / ".gitignore"
assert f"Could not parse {gitignore}" in result.stderr_bytes.decode() assert re.search(
f"Could not parse {gitignore}".replace("\\", "\\\\"),
result.stderr_bytes.decode(),
re.IGNORECASE if isinstance(gitignore, WindowsPath) else 0,
)
def test_invalid_nested_gitignore(self) -> None: def test_invalid_nested_gitignore(self) -> None:
path = THIS_DIR / "data" / "invalid_nested_gitignore_tests" path = THIS_DIR / "data" / "invalid_nested_gitignore_tests"
@ -2472,7 +2476,11 @@ def test_invalid_nested_gitignore(self) -> None:
assert result.stderr_bytes is not None assert result.stderr_bytes is not None
gitignore = path / "a" / ".gitignore" gitignore = path / "a" / ".gitignore"
assert f"Could not parse {gitignore}" in result.stderr_bytes.decode() assert re.search(
f"Could not parse {gitignore}".replace("\\", "\\\\"),
result.stderr_bytes.decode(),
re.IGNORECASE if isinstance(gitignore, WindowsPath) else 0,
)
def test_gitignore_that_ignores_subfolders(self) -> None: def test_gitignore_that_ignores_subfolders(self) -> None:
# If gitignore with */* is in root # If gitignore with */* is in root