Commit a2216ba6 by Sébastien Eustace Committed by GitHub

Make the editable builder execute build scripts if no setup.py generation (#2718)

parent c2bab89b
...@@ -43,16 +43,24 @@ class EditableBuilder(Builder): ...@@ -43,16 +43,24 @@ class EditableBuilder(Builder):
) )
if self._package.build_script: if self._package.build_script:
if self._package.build_should_generate_setup():
self._debug( self._debug(
" - <warning>Falling back on using a <b>setup.py</b></warning>" " - <warning>Falling back on using a <b>setup.py</b></warning>"
) )
return self._setup_build() return self._setup_build()
self._run_build_script(self._package.build_script)
added_files = [] added_files = []
added_files += self._add_pth() added_files += self._add_pth()
added_files += self._add_scripts() added_files += self._add_scripts()
self._add_dist_info(added_files) self._add_dist_info(added_files)
def _run_build_script(self, build_script):
self._debug(" - Executing build script: <b>{}</b>".format(build_script))
self._env.run("python", str(self._path.joinpath(build_script)), call=True)
def _setup_build(self): def _setup_build(self):
builder = SdistBuilder(self._poetry) builder = SdistBuilder(self._poetry)
setup = self._path / "setup.py" setup = self._path / "setup.py"
......
[tool.poetry]
name = "extended-project"
version = "1.2.3"
description = "Some description."
authors = [
"Sébastien Eustace <sebastien@eustace.io>"
]
license = "MIT"
readme = "README.rst"
homepage = "https://python-poetry.org"
repository = "https://github.com/python-poetry/poetry"
documentation = "https://python-poetry.org/docs"
keywords = ["packaging", "dependency", "poetry"]
classifiers = [
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
]
[tool.poetry.build]
script = "build.py"
generate-setup-file = false
# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.4"
[tool.poetry.scripts]
foo = "foo:bar"
...@@ -43,6 +43,17 @@ def extended_poetry(): ...@@ -43,6 +43,17 @@ def extended_poetry():
@pytest.fixture() @pytest.fixture()
def extended_without_setup_poetry():
poetry = Factory().create_poetry(
Path(__file__).parent.parent.parent
/ "fixtures"
/ "extended_project_without_setup"
)
return poetry
@pytest.fixture()
def env_manager(simple_poetry): def env_manager(simple_poetry):
return EnvManager(simple_poetry) return EnvManager(simple_poetry)
...@@ -194,3 +205,14 @@ def test_builder_installs_proper_files_when_packages_configured( ...@@ -194,3 +205,14 @@ def test_builder_installs_proper_files_when_packages_configured(
assert paths.issubset(expected) assert paths.issubset(expected)
assert len(paths) == len(expected) assert len(paths) == len(expected)
def test_builder_should_execute_build_scripts(extended_without_setup_poetry):
env = MockEnv(path=Path("/foo"))
builder = EditableBuilder(extended_without_setup_poetry, env, NullIO())
builder.build()
assert [
["python", str(extended_without_setup_poetry.file.parent / "build.py")]
] == env.executed
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment