Commit 00cfd81 1 parent a73a33b commit 00cfd81 Copy full SHA for 00cfd81
File tree 1 file changed +19
-0
lines changed
src/tox_poetry_dev_dependencies
1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change 6
6
import typing
7
7
8
8
import poetry .core .factory
9
+ import poetry .core .poetry
9
10
import tox
10
11
11
12
if typing .TYPE_CHECKING :
@@ -48,6 +49,11 @@ def tox_addoption(parser: tox.config.Parser) -> None:
48
49
"'PIP_EXTRA_INDEX_URL')."
49
50
),
50
51
)
52
+ parser .add_testenv_attribute (
53
+ 'poetry_install_locked_dependencies' ,
54
+ 'bool' ,
55
+ "Install locked versions of the dependencies according to lock file" ,
56
+ )
51
57
52
58
53
59
@tox .hookimpl # type: ignore[misc]
@@ -58,6 +64,8 @@ def tox_configure(config: tox.config.Config) -> None:
58
64
except NoPoetryFound :
59
65
pass
60
66
else :
67
+ pinned_deps = _get_pinned_deps (poetry_ )
68
+ #
61
69
dev_deps = _get_dev_requirements (poetry_ )
62
70
_add_dev_dependencies (config , dev_deps )
63
71
#
@@ -131,6 +139,17 @@ def _get_dev_requirements(
131
139
return requirements
132
140
133
141
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
+
134
153
def _get_index_servers (
135
154
poetry_ : poetry .core .poetry .Poetry ,
136
155
) -> 'IndexServersT' :
You can’t perform that action at this time.
0 commit comments