def _run_build_script(self, build_script: str) -> None: with build_environment(poetry=self._poetry, env=self._env, io=self._io) as env: self._debug(f" - Executing build script: <b>{build_script}</b>") env.run("python", str(self._path.joinpath(build_script)), call=True)
def test_build_environment_not_called_without_build_script_specified( mocker: MockerFixture, poetry: Poetry, tmp_dir: str): project_env = MockEnv(path=Path(tmp_dir) / "project") ephemeral_env = MockEnv(path=Path(tmp_dir) / "ephemeral") mocker.patch("poetry.utils.env.ephemeral_environment" ).return_value.__enter__.return_value = ephemeral_env with build_environment(poetry, project_env) as env: assert env == project_env assert not env.executed
def handle(self) -> None: from poetry.core.masonry.builder import Builder with build_environment(poetry=self.poetry, env=self.env, io=self.io) as env: fmt = self.option("format") or "all" package = self.poetry.package self.line( f"Building <c1>{package.pretty_name}</c1> (<c2>{package.version}</c2>)" ) builder = Builder(self.poetry) builder.build(fmt, executable=env.python)
def test_build_environment_called_build_script_specified( mocker: MockerFixture, extended_without_setup_poetry: Poetry, tmp_dir: str): project_env = MockEnv(path=Path(tmp_dir) / "project") ephemeral_env = MockEnv(path=Path(tmp_dir) / "ephemeral") mocker.patch("poetry.utils.env.ephemeral_environment" ).return_value.__enter__.return_value = ephemeral_env with build_environment(extended_without_setup_poetry, project_env) as env: assert env == ephemeral_env assert env.executed == [[ "python", env.pip_embedded, "install", "--disable-pip-version-check", "--ignore-installed", *extended_without_setup_poetry.pyproject.build_system.requires, ]]