Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
cc715ef8
Unverified
Commit
cc715ef8
authored
Oct 07, 2018
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix a conflict error for locked conditional dependencies
parent
e3b974c6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
1 deletions
+40
-1
poetry/packages/package.py
+9
-1
tests/puzzle/test_solver.py
+31
-0
No files found.
poetry/packages/package.py
View file @
cc715ef8
...
...
@@ -19,6 +19,7 @@ from .dependency import Dependency
from
.directory_dependency
import
DirectoryDependency
from
.file_dependency
import
FileDependency
from
.vcs_dependency
import
VCSDependency
from
.utils.utils
import
convert_markers
from
.utils.utils
import
create_nested_marker
AUTHOR_REGEX
=
re
.
compile
(
"(?u)^(?P<name>[- .,
\
w
\
d'’
\"
()]+)(?: <(?P<email>.+?)>)?$"
)
...
...
@@ -326,7 +327,14 @@ class Package(object):
return
dependency
def
to_dependency
(
self
):
return
Dependency
(
self
.
name
,
self
.
_version
)
from
.
import
dependency_from_pep_508
name
=
"{} (=={})"
.
format
(
self
.
_name
,
self
.
_version
)
if
not
self
.
marker
.
is_any
():
name
+=
" ; {}"
.
format
(
str
(
self
.
marker
))
return
dependency_from_pep_508
(
name
)
@contextmanager
def
with_python_versions
(
self
,
python_versions
):
...
...
tests/puzzle/test_solver.py
View file @
cc715ef8
...
...
@@ -10,6 +10,7 @@ from poetry.repositories.pool import Pool
from
poetry.repositories.repository
import
Repository
from
poetry.puzzle
import
Solver
from
poetry.puzzle.exceptions
import
SolverProblemError
from
poetry.version.markers
import
parse_marker
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_package
...
...
@@ -1073,3 +1074,33 @@ def test_solver_does_not_trigger_new_resolution_on_duplicate_dependencies_if_onl
'extra == "bar" or extra == "foo"'
,
]
assert
str
(
ops
[
1
]
.
package
.
marker
)
==
""
def
test_solver_does_not_raise_conflict_for_locked_conditional_dependencies
(
solver
,
repo
,
package
):
package
.
python_versions
=
"~2.7 || ^3.4"
package
.
add_dependency
(
"A"
,
{
"version"
:
"^1.0"
,
"python"
:
"^3.6"
})
package
.
add_dependency
(
"B"
,
"^1.0"
)
package_a
=
get_package
(
"A"
,
"1.0.0"
)
package_a
.
python_versions
=
">=3.6"
package_a
.
marker
=
parse_marker
(
'python_version >= "3.6" and python_version < "4.0"'
)
package_b
=
get_package
(
"B"
,
"1.0.0"
)
repo
.
add_package
(
package_a
)
repo
.
add_package
(
package_b
)
solver
.
_locked
=
Repository
([
package_a
])
ops
=
solver
.
solve
(
use_latest
=
[
package_b
.
name
])
check_solver_result
(
ops
,
[
{
"job"
:
"install"
,
"package"
:
package_a
},
{
"job"
:
"install"
,
"package"
:
package_b
},
],
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment