Lines Matching refs:self

62     def setUp(self):
63 self.env_dir = os.path.realpath(tempfile.mkdtemp())
65 self.bindir = 'Scripts'
66 self.lib = ('Lib',)
67 self.include = 'Include'
69 self.bindir = 'bin'
70 self.lib = ('lib', 'python%d.%d' % sys.version_info[:2])
71 self.include = 'include'
73 self.exe = os.path.split(executable)[-1]
77 self.cannot_link_exe = True
79 self.cannot_link_exe = False
81 def tearDown(self):
82 rmtree(self.env_dir)
84 def run_with_capture(self, func, *args, **kwargs):
90 def get_env_file(self, *args):
91 return os.path.join(self.env_dir, *args)
93 def get_text_file_contents(self, *args, encoding='utf-8'):
94 with open(self.get_env_file(*args), 'r', encoding=encoding) as f:
101 def isdir(self, *args):
102 fn = self.get_env_file(*args)
103 self.assertTrue(os.path.isdir(fn))
105 def test_defaults_with_str_path(self):
109 rmtree(self.env_dir)
110 self.run_with_capture(venv.create, self.env_dir)
111 self._check_output_of_default_create()
113 def test_defaults_with_pathlib_path(self):
117 rmtree(self.env_dir)
118 self.run_with_capture(venv.create, pathlib.Path(self.env_dir))
119 self._check_output_of_default_create()
121 def _check_output_of_default_create(self):
122 self.isdir(self.bindir)
123 self.isdir(self.include)
124 self.isdir(*self.lib)
126 p = self.get_env_file('lib64')
130 self.assertTrue(os.path.islink(p))
132 self.assertFalse(os.path.exists(p))
133 data = self.get_text_file_contents('pyvenv.cfg')
136 self.assertIn('home = %s' % path, data)
137 self.assertIn('executable = %s' %
140 cmd = f'command = {sys.executable} -m venv{copies} --without-pip {self.env_dir}'
141 self.assertIn(cmd, data)
142 fn = self.get_env_file(self.bindir, self.exe)
144 bd = self.get_env_file(self.bindir)
147 self.assertTrue(os.path.exists(fn), 'File %r should exist.' % fn)
149 def test_config_file_command_key(self):
161 rmtree(self.env_dir)
169 self.run_with_capture(b.create, self.env_dir)
170 data = self.get_text_file_contents('pyvenv.cfg')
174 self.assertNotRegex(data, rf'command = .* {opt}')
178 self.assertRegex(data, rf'command = .* {opt}')
180 def test_prompt(self):
181 env_name = os.path.split(self.env_dir)[1]
183 rmtree(self.env_dir)
185 self.run_with_capture(builder.create, self.env_dir)
186 context = builder.ensure_directories(self.env_dir)
187 data = self.get_text_file_contents('pyvenv.cfg')
188 self.assertEqual(context.prompt, '(%s) ' % env_name)
189 self.assertNotIn("prompt = ", data)
191 rmtree(self.env_dir)
193 self.run_with_capture(builder.create, self.env_dir)
194 context = builder.ensure_directories(self.env_dir)
195 data = self.get_text_file_contents('pyvenv.cfg')
196 self.assertEqual(context.prompt, '(My prompt) ')
197 self.assertIn("prompt = 'My prompt'\n", data)
199 rmtree(self.env_dir)
202 self.run_with_capture(builder.create, self.env_dir)
203 context = builder.ensure_directories(self.env_dir)
204 data = self.get_text_file_contents('pyvenv.cfg')
205 self.assertEqual(context.prompt, '(%s) ' % cwd)
206 self.assertIn("prompt = '%s'\n" % cwd, data)
208 def test_upgrade_dependencies(self):
221 self.assertEqual(
239 def test_prefixes(self):
244 rmtree(self.env_dir)
245 self.run_with_capture(venv.create, self.env_dir)
246 envpy = os.path.join(self.env_dir, self.bindir, self.exe)
249 ('prefix', self.env_dir),
250 ('exec_prefix', self.env_dir),
255 self.assertEqual(out.strip(), expected.encode(), prefix)
258 def test_sysconfig(self):
262 rmtree(self.env_dir)
263 self.run_with_capture(venv.create, self.env_dir, symlinks=False)
264 envpy = os.path.join(self.env_dir, self.bindir, self.exe)
274 with self.subTest(call):
277 self.assertEqual(out.strip(), expected.encode(), err)
281 def test_sysconfig_symlinks(self):
285 rmtree(self.env_dir)
286 self.run_with_capture(venv.create, self.env_dir, symlinks=True)
287 envpy = os.path.join(self.env_dir, self.bindir, self.exe)
297 with self.subTest(call):
300 self.assertEqual(out.strip(), expected.encode(), err)
318 def create_contents(self, paths, filename):
324 d = os.path.join(self.env_dir, *subdirs)
330 def test_overwrite_existing(self):
334 self.create_contents(self.ENV_SUBDIRS, 'foo')
335 venv.create(self.env_dir)
336 for subdirs in self.ENV_SUBDIRS:
337 fn = os.path.join(self.env_dir, *(subdirs + ('foo',)))
338 self.assertTrue(os.path.exists(fn))
340 self.assertEqual(f.read(), b'Still here?')
343 builder.create(self.env_dir)
344 for subdirs in self.ENV_SUBDIRS:
345 fn = os.path.join(self.env_dir, *(subdirs + ('foo',)))
346 self.assertFalse(os.path.exists(fn))
348 def clear_directory(self, path):
356 def test_unoverwritable_fails(self):
358 for paths in self.ENV_SUBDIRS[:3]:
359 fn = os.path.join(self.env_dir, *paths)
362 self.assertRaises((ValueError, OSError), venv.create, self.env_dir)
363 self.clear_directory(self.env_dir)
365 def test_upgrade(self):
374 self.run_with_capture(builder.create, self.env_dir)
375 self.isdir(self.bindir)
376 self.isdir(self.include)
377 self.isdir(*self.lib)
378 fn = self.get_env_file(self.bindir, self.exe)
381 bd = self.get_env_file(self.bindir)
384 self.assertTrue(os.path.exists(fn), 'File %r should exist.' % fn)
386 def test_isolation(self):
392 builder.create(self.env_dir)
393 data = self.get_text_file_contents('pyvenv.cfg')
394 self.assertIn('include-system-site-packages = %s\n' % s, data)
397 def test_symlinking(self):
403 builder.create(self.env_dir)
404 fn = self.get_env_file(self.bindir, self.exe)
409 if self.cannot_link_exe:
412 self.assertFalse(os.path.islink(fn))
414 self.assertTrue(os.path.islink(fn))
421 def test_executable(self):
425 rmtree(self.env_dir)
426 self.run_with_capture(venv.create, self.env_dir)
427 envpy = os.path.join(os.path.realpath(self.env_dir),
428 self.bindir, self.exe)
431 self.assertEqual(out.strip(), envpy.encode())
434 def test_executable_symlinks(self):
438 rmtree(self.env_dir)
440 builder.create(self.env_dir)
441 envpy = os.path.join(os.path.realpath(self.env_dir),
442 self.bindir, self.exe)
445 self.assertEqual(out.strip(), envpy.encode())
448 def test_unicode_in_batch_file(self):
452 rmtree(self.env_dir)
453 env_dir = os.path.join(os.path.realpath(self.env_dir), 'ϼўТλФЙ')
456 activate = os.path.join(env_dir, self.bindir, 'activate.bat')
457 envpy = os.path.join(env_dir, self.bindir, self.exe)
459 [activate, '&', self.exe, '-c', 'print(0)'],
462 self.assertEqual(out.strip(), '0')
465 def test_multiprocessing(self):
474 rmtree(self.env_dir)
475 self.run_with_capture(venv.create, self.env_dir)
476 envpy = os.path.join(os.path.realpath(self.env_dir),
477 self.bindir, self.exe)
483 self.assertEqual(out.strip(), "python".encode())
486 def test_multiprocessing_recursion(self):
492 rmtree(self.env_dir)
493 self.run_with_capture(venv.create, self.env_dir)
494 envpy = os.path.join(os.path.realpath(self.env_dir),
495 self.bindir, self.exe)
500 def test_deactivate_with_strict_bash_opts(self):
503 self.skipTest("bash required for this test")
504 rmtree(self.env_dir)
506 builder.create(self.env_dir)
507 activate = os.path.join(self.env_dir, self.bindir, "activate")
508 test_script = os.path.join(self.env_dir, "test_strict.sh")
514 self.assertEqual(out, "".encode())
515 self.assertEqual(err, "".encode())
519 def test_macos_env(self):
520 rmtree(self.env_dir)
522 builder.create(self.env_dir)
524 envpy = os.path.join(os.path.realpath(self.env_dir),
525 self.bindir, self.exe)
528 self.assertEqual(out.strip(), 'False'.encode())
530 def test_pathsep_error(self):
535 rmtree(self.env_dir)
536 bad_itempath = self.env_dir + os.pathsep
537 self.assertRaises(ValueError, venv.create, bad_itempath)
538 self.assertRaises(ValueError, venv.create, pathlib.Path(bad_itempath))
542 def test_zippath_from_non_installed_posix(self):
547 rmtree(self.env_dir)
552 self.addCleanup(rmtree, non_installed_dir)
553 bindir = os.path.join(non_installed_dir, self.bindir)
556 libdir = os.path.join(non_installed_dir, platlibdir, self.lib[1])
584 cmd = [os.path.join(non_installed_dir, self.bindir, self.exe),
588 self.env_dir]
607 envpy = os.path.join(self.env_dir, self.bindir, self.exe)
612 self.assertTrue(zip_landmark.encode() in out)
617 def assert_pip_not_installed(self):
618 envpy = os.path.join(os.path.realpath(self.env_dir),
619 self.bindir, self.exe)
625 self.assertEqual(err, "")
627 self.assertEqual(out.strip(), "OK")
630 def test_no_pip_by_default(self):
631 rmtree(self.env_dir)
632 self.run_with_capture(venv.create, self.env_dir)
633 self.assert_pip_not_installed()
635 def test_explicit_no_pip(self):
636 rmtree(self.env_dir)
637 self.run_with_capture(venv.create, self.env_dir, with_pip=False)
638 self.assert_pip_not_installed()
640 def test_devnull(self):
646 self.assertEqual(f.read(), b"")
648 self.assertTrue(os.path.exists(os.devnull))
650 def do_test_with_pip(self, system_site_packages):
651 rmtree(self.env_dir)
682 with self.nicer_error():
683 self.run_with_capture(venv.create, self.env_dir,
687 envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
695 self.assertEqual(err, "")
698 self.assertEqual(out[:len(expected_version)], expected_version)
699 env_dir = os.fsencode(self.env_dir).decode("latin-1")
700 self.assertIn(env_dir, out)
706 with self.nicer_error():
726 self.assertEqual(err.rstrip(), "")
731 self.assertIn("Successfully uninstalled pip", out)
732 self.assertIn("Successfully uninstalled setuptools", out)
737 self.assert_pip_not_installed()
740 def nicer_error(self):
752 self.fail(
759 def test_with_pip(self):
760 self.do_test_with_pip(False)
761 self.do_test_with_pip(True)