bpo-35661: Store the venv prompt in pyvenv.cfg (GH-11440) · python/cpython@d5a70c6 (original) (raw)

3 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -113,10 +113,16 @@ def test_prompt(self):
113 113 builder = venv.EnvBuilder()
114 114 context = builder.ensure_directories(self.env_dir)
115 115 self.assertEqual(context.prompt, '(%s) ' % env_name)
116 +builder.create(self.env_dir)
117 +data = self.get_text_file_contents('pyvenv.cfg')
118 +self.assertNotIn("prompt = ", data)
116 119
117 120 builder = venv.EnvBuilder(prompt='My prompt')
118 121 context = builder.ensure_directories(self.env_dir)
119 122 self.assertEqual(context.prompt, '(My prompt) ')
123 +builder.create(self.env_dir)
124 +data = self.get_text_file_contents('pyvenv.cfg')
125 +self.assertIn("prompt = 'My prompt'\n", data)
120 126
121 127 @skipInVenv
122 128 def test_prefixes(self):
Original file line number Diff line number Diff line change
@@ -154,6 +154,8 @@ def create_configuration(self, context):
154 154 incl = 'false'
155 155 f.write('include-system-site-packages = %s\n' % incl)
156 156 f.write('version = %d.%d.%d\n' % sys.version_info[:3])
157 +if self.prompt is not None:
158 +f.write(f'prompt = {self.prompt!r}\n')
157 159
158 160 def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
159 161 """
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1 +Store the venv prompt in pyvenv.cfg.