def test_install_requires_extra(deps, extras, installed): it = InstallTests() try: it.setUp() ins = Installer(samples_dir / 'extras' / 'pyproject.toml', python='mock_python', user=False, deps=deps, extras=extras) cmd = MockCommand('mock_python') get_reqs = ( "#!{python}\n" "import sys\n" "with open({recording_file!r}, 'wb') as w, open(sys.argv[-1], 'rb') as r:\n" " w.write(r.read())" ).format(python=sys.executable, recording_file=cmd.recording_file) cmd.content = get_reqs with cmd as mock_py: ins.install_requirements() with open(mock_py.recording_file) as f: str_deps = f.read() deps = str_deps.split('\n') if str_deps else [] assert set(deps) == installed finally: it.tearDown()
def test_install_requires(self): ins = Installer(samples_dir / 'requires-requests.toml', user=False, python='mock_python') with MockCommand('mock_python') as mockpy: ins.install_requirements() calls = mockpy.get_calls() assert len(calls) == 1 assert calls[0]['argv'][1:5] == ['-m', 'pip', 'install', '-r']