Skip to content

Commit 00cfd81

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

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/tox_poetry_dev_dependencies/_hooks.py

+19
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,11 @@ 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+
)
5157

5258

5359
@tox.hookimpl # type: ignore[misc]
@@ -58,6 +64,8 @@ def tox_configure(config: tox.config.Config) -> None:
5864
except NoPoetryFound:
5965
pass
6066
else:
67+
pinned_deps = _get_pinned_deps(poetry_)
68+
#
6169
dev_deps = _get_dev_requirements(poetry_)
6270
_add_dev_dependencies(config, dev_deps)
6371
#
@@ -131,6 +139,17 @@ def _get_dev_requirements(
131139
return requirements
132140

133141

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

0 commit comments

Comments
 (0)