Issue #15241: Added test for venv prefixes.
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 705fd39..3750c36 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -8,6 +8,7 @@
import os
import os.path
import shutil
+import subprocess
import sys
import tempfile
from test.support import (captured_stdout, captured_stderr, run_unittest,
@@ -86,6 +87,30 @@
print(' %r' % os.listdir(bd))
self.assertTrue(os.path.exists(fn), 'File %r should exist.' % fn)
+ def test_prefixes(self):
+ """
+ Test that the prefix values are as expected.
+ """
+ #check our prefixes
+ self.assertEqual(sys.base_prefix, sys.prefix)
+ self.assertEqual(sys.base_exec_prefix, sys.exec_prefix)
+
+ # check a venv's prefixes
+ shutil.rmtree(self.env_dir)
+ self.run_with_capture(venv.create, self.env_dir)
+ envpy = os.path.join(self.env_dir, self.bindir, self.exe)
+ cmd = [envpy, '-c', None]
+ for prefix, expected in (
+ ('prefix', self.env_dir),
+ ('prefix', self.env_dir),
+ ('base_prefix', sys.prefix),
+ ('base_exec_prefix', sys.exec_prefix)):
+ cmd[2] = 'import sys; print(sys.%s)' % prefix
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ out, err = p.communicate()
+ self.assertEqual(out[:-1], expected.encode())
+
def test_overwrite_existing(self):
"""
Test control of overwriting an existing environment directory.