Skip to content

Commit

Permalink
pythongh-103088: Fix virtual environment activate script not working …
Browse files Browse the repository at this point in the history
…in Cygwin (pythonGH-103470)
  • Loading branch information
Zabolekar committed Apr 12, 2023
1 parent 7f3c106 commit 2b6e877
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
15 changes: 15 additions & 0 deletions Lib/test/test_venv.py
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,21 @@ def test_zippath_from_non_installed_posix(self):
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."""
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix virtual environment :file:`activate` script having incorrect line endings for Cygwin.

0 comments on commit 2b6e877

Please sign in to comment.