summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitattributes3
-rw-r--r--Lib/test/test_venv.py15
-rw-r--r--Misc/NEWS.d/next/Windows/2023-04-12-10-49-21.gh-issue-103088.Yjj-qJ.rst1
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.