Skip to content

Commit 9271006

Browse files
committed
WIP Install locked versions of dependencies
GitHub: #24
1 parent a73a33b commit 9271006

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/tox_poetry_dev_dependencies/_hooks.py

+20
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import typing
77

88
import poetry.core.factory
9+
import poetry.core.poetry
910
import tox
1011

1112
if typing.TYPE_CHECKING:
@@ -48,6 +49,12 @@ def tox_addoption(parser: tox.config.Parser) -> None:
4849
"'PIP_EXTRA_INDEX_URL')."
4950
),
5051
)
52+
parser.add_testenv_attribute(
53+
'poetry_install_locked_dependencies',
54+
'bool',
55+
"Install locked versions of the dependencies according to lock file",
56+
default=False,
57+
)
5158

5259

5360
@tox.hookimpl # type: ignore[misc]
@@ -58,6 +65,8 @@ def tox_configure(config: tox.config.Config) -> None:
5865
except NoPoetryFound:
5966
pass
6067
else:
68+
pinned_deps = _get_pinned_deps(poetry_)
69+
#
6170
dev_deps = _get_dev_requirements(poetry_)
6271
_add_dev_dependencies(config, dev_deps)
6372
#
@@ -131,6 +140,17 @@ def _get_dev_requirements(
131140
return requirements
132141

133142

143+
def _get_pinned_deps(
144+
poetry_: poetry.core.poetry.Poetry,
145+
) -> typing.List[tox.config.DepConfig]:
146+
#
147+
pinned_deps = [
148+
tox.config.DepConfig(dependency.to_dependency().to_pep_508())
149+
for dependency in poetry_.locker.get_packages()
150+
]
151+
return pinned_deps
152+
153+
134154
def _get_index_servers(
135155
poetry_: poetry.core.poetry.Poetry,
136156
) -> 'IndexServersT':

0 commit comments

Comments
 (0)