diff options
-rw-r--r-- | .gitattributes | 3 | ||||
-rw-r--r-- | Lib/test/test_venv.py | 15 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Windows/2023-04-12-10-49-21.gh-issue-103088.Yjj-qJ.rst | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes index 1328918..cb1cf8b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -32,6 +32,9 @@ Lib/test/test_importlib/resources/data01/* noeol Lib/test/test_importlib/resources/namespacedata01/* noeol Lib/test/xmltestdata/* noeol +# Shell scripts should have LF even on Windows because of Cygwin +Lib/venv/scripts/common/activate text eol=lf + # CRLF files [attr]dos text eol=crlf diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 4e18dfc..2332843 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -611,6 +611,21 @@ class BasicTest(BaseTest): out, err = check_output(cmd) self.assertTrue(zip_landmark.encode() in out) + def test_activate_shell_script_has_no_dos_newlines(self): + """ + Test that the `activate` shell script contains no CR LF. + This is relevant for Cygwin, as the Windows build might have + converted line endings accidentally. + """ + venv_dir = pathlib.Path(self.env_dir) + rmtree(venv_dir) + [[scripts_dir], *_] = self.ENV_SUBDIRS + script_path = venv_dir / scripts_dir / "activate" + venv.create(venv_dir) + with open(script_path, 'rb') as script: + for line in script: + self.assertFalse(line.endswith(b'\r\n'), line) + @requireVenvCreate class EnsurePipTest(BaseTest): """Test venv module installation of pip.""" diff --git a/Misc/NEWS.d/next/Windows/2023-04-12-10-49-21.gh-issue-103088.Yjj-qJ.rst b/Misc/NEWS.d/next/Windows/2023-04-12-10-49-21.gh-issue-103088.Yjj-qJ.rst new file mode 100644 index 0000000..1fee99d --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2023-04-12-10-49-21.gh-issue-103088.Yjj-qJ.rst @@ -0,0 +1 @@ +Fix virtual environment :file:`activate` script having incorrect line endings for Cygwin. |