Commit 3d01958b by Sébastien Eustace

Make explicit includes have higher priority

parent 6738f829
...@@ -12,6 +12,7 @@ from poetry.vcs import get_vcs ...@@ -12,6 +12,7 @@ from poetry.vcs import get_vcs
from ..metadata import Metadata from ..metadata import Metadata
from ..utils.module import Module from ..utils.module import Module
from ..utils.package_include import PackageInclude
AUTHOR_REGEX = re.compile("(?u)^(?P<name>[- .,\w\d'’\"()]+) <(?P<email>.+?)>$") AUTHOR_REGEX = re.compile("(?u)^(?P<name>[- .,\w\d'’\"()]+) <(?P<email>.+?)>$")
...@@ -80,7 +81,7 @@ class Builder(object): ...@@ -80,7 +81,7 @@ class Builder(object):
file = file.relative_to(self._path) file = file.relative_to(self._path)
if file in excluded: if file in excluded and isinstance(include, PackageInclude):
continue continue
if file.suffix == ".pyc": if file.suffix == ".pyc":
......
...@@ -27,6 +27,7 @@ packages = [ ...@@ -27,6 +27,7 @@ packages = [
] ]
include = [ include = [
"extra_dir/vcs_excluded.txt",
"notes.txt" "notes.txt"
] ]
......
...@@ -339,7 +339,26 @@ def test_with_src_module_dir(): ...@@ -339,7 +339,26 @@ def test_with_src_module_dir():
assert "package-src-0.1/src/package_src/module.py" in tar.getnames() assert "package-src-0.1/src/package_src/module.py" in tar.getnames()
def test_package_with_include(): def test_package_with_include(mocker):
# Patch git module to return specific excluded files
p = mocker.patch("poetry.vcs.git.Git.get_ignored_files")
p.return_value = [
str(
Path(__file__).parent
/ "fixtures"
/ "with-include"
/ "extra_dir"
/ "vcs_excluded.txt"
),
str(
Path(__file__).parent
/ "fixtures"
/ "with-include"
/ "extra_dir"
/ "sub_pkg"
/ "vcs_excluded.txt"
),
]
poetry = Poetry.create(project("with-include")) poetry = Poetry.create(project("with-include"))
builder = SdistBuilder(poetry, NullVenv(), NullIO()) builder = SdistBuilder(poetry, NullVenv(), NullIO())
...@@ -367,7 +386,9 @@ def test_package_with_include(): ...@@ -367,7 +386,9 @@ def test_package_with_include():
assert "with-include-1.2.3/LICENSE" in names assert "with-include-1.2.3/LICENSE" in names
assert "with-include-1.2.3/README.rst" in names assert "with-include-1.2.3/README.rst" in names
assert "with-include-1.2.3/extra_dir/__init__.py" in names assert "with-include-1.2.3/extra_dir/__init__.py" in names
assert "with-include-1.2.3/extra_dir/vcs_excluded.txt" in names
assert "with-include-1.2.3/extra_dir/sub_pkg/__init__.py" in names assert "with-include-1.2.3/extra_dir/sub_pkg/__init__.py" in names
assert "with-include-1.2.3/extra_dir/sub_pkg/vcs_excluded.txt" not in names
assert "with-include-1.2.3/my_module.py" in names assert "with-include-1.2.3/my_module.py" in names
assert "with-include-1.2.3/notes.txt" in names assert "with-include-1.2.3/notes.txt" in names
assert "with-include-1.2.3/package_with_include/__init__.py" in names assert "with-include-1.2.3/package_with_include/__init__.py" in names
......
...@@ -117,7 +117,7 @@ def test_poetry_with_packages_and_includes(): ...@@ -117,7 +117,7 @@ def test_poetry_with_packages_and_includes():
{"include": "package_with_include"}, {"include": "package_with_include"},
] ]
assert package.include == ["notes.txt"] assert package.include == ["extra_dir/vcs_excluded.txt", "notes.txt"]
def test_check(): def test_check():
......
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