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
a55eaad5
Unverified
Commit
a55eaad5
authored
May 06, 2018
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix an error when adding a new package with prereleases in lock file
parent
0e6a9a23
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
2 deletions
+140
-2
CHANGELOG.md
+1
-0
poetry/installation/installer.py
+7
-2
tests/installation/fixtures/with-category-change.test
+29
-0
tests/installation/fixtures/with-prereleases.test
+26
-0
tests/installation/test_installer.py
+77
-0
No files found.
CHANGELOG.md
View file @
a55eaad5
...
...
@@ -29,6 +29,7 @@ commands in project subdirectories.
-
Fixed
`self:update`
command for some installation.
-
Fixed handling of extras when building projects.
-
Fixed handling of wildcard dependencies wen packaging/publishing.
-
Fixed an error when adding a new packages with prereleases in lock file.
## [0.8.6] - 2018-04-30
...
...
poetry/installation/installer.py
View file @
a55eaad5
...
...
@@ -153,9 +153,14 @@ class Installer:
to_fix
=
False
if
to_fix
:
fixed
.
append
(
Dependency
(
candidate
.
name
,
candidate
.
version
)
dependency
=
Dependency
(
candidate
.
name
,
candidate
.
version
,
optional
=
candidate
.
optional
,
category
=
candidate
.
category
,
allows_prereleases
=
candidate
.
is_prerelease
()
)
fixed
.
append
(
dependency
)
solver
=
Solver
(
self
.
_package
,
...
...
tests/installation/fixtures/with-category-change.test
0 → 100644
View file @
a55eaad5
[[
package
]]
name
=
"A"
version
=
"1.0"
description
=
""
category
=
"main"
optional
=
false
python
-
versions
=
"*"
platform
=
"*"
[[
package
]]
name
=
"B"
version
=
"1.1"
description
=
""
category
=
"main"
optional
=
false
python
-
versions
=
"*"
platform
=
"*"
[
package
.
dependencies
]
A
=
"^1.0"
[
metadata
]
python
-
versions
=
"*"
platform
=
"*"
content
-
hash
=
"123456789"
[
metadata
.
hashes
]
"A"
=
[]
"B"
=
[]
tests/installation/fixtures/with-prereleases.test
0 → 100644
View file @
a55eaad5
[[
package
]]
name
=
"A"
version
=
"1.0a2"
description
=
""
category
=
"main"
optional
=
false
python
-
versions
=
"*"
platform
=
"*"
[[
package
]]
name
=
"B"
version
=
"1.1"
description
=
""
category
=
"main"
optional
=
false
python
-
versions
=
"*"
platform
=
"*"
[
metadata
]
python
-
versions
=
"*"
platform
=
"*"
content
-
hash
=
"123456789"
[
metadata
.
hashes
]
"A"
=
[]
"B"
=
[]
tests/installation/test_installer.py
View file @
a55eaad5
...
...
@@ -572,3 +572,80 @@ def test_run_installs_with_local_directory(installer, locker, repo, package):
assert
locker
.
written_data
==
expected
assert
len
(
installer
.
installer
.
installs
)
==
3
def
test_run_with_prereleases
(
installer
,
locker
,
repo
,
package
):
locker
.
locked
(
True
)
locker
.
mock_lock_data
({
'package'
:
[{
'name'
:
'A'
,
'version'
:
'1.0a2'
,
'category'
:
'main'
,
'optional'
:
False
,
'platform'
:
'*'
,
'python-versions'
:
'*'
,
'checksum'
:
[]
}],
'metadata'
:
{
'python-versions'
:
'*'
,
'platform'
:
'*'
,
'content-hash'
:
'123456789'
,
'hashes'
:
{
'A'
:
[],
}
}
})
package_a
=
get_package
(
'A'
,
'1.0a2'
)
package_b
=
get_package
(
'B'
,
'1.1'
)
repo
.
add_package
(
package_a
)
repo
.
add_package
(
package_b
)
package
.
add_dependency
(
'A'
,
{
'version'
:
'*'
,
'allows-prereleases'
:
True
})
package
.
add_dependency
(
'B'
,
'^1.1'
)
installer
.
update
(
True
)
installer
.
whitelist
({
'B'
:
'^1.1'
})
installer
.
run
()
expected
=
fixture
(
'with-prereleases'
)
assert
locker
.
written_data
==
expected
def
test_run_changes_category_if_needed
(
installer
,
locker
,
repo
,
package
):
locker
.
locked
(
True
)
locker
.
mock_lock_data
({
'package'
:
[{
'name'
:
'A'
,
'version'
:
'1.0'
,
'category'
:
'dev'
,
'optional'
:
True
,
'platform'
:
'*'
,
'python-versions'
:
'*'
,
'checksum'
:
[]
}],
'metadata'
:
{
'python-versions'
:
'*'
,
'platform'
:
'*'
,
'content-hash'
:
'123456789'
,
'hashes'
:
{
'A'
:
[],
}
}
})
package_a
=
get_package
(
'A'
,
'1.0'
)
package_b
=
get_package
(
'B'
,
'1.1'
)
package_b
.
add_dependency
(
'A'
,
'^1.0'
)
repo
.
add_package
(
package_a
)
repo
.
add_package
(
package_b
)
package
.
add_dependency
(
'A'
,
{
'version'
:
'^1.0'
,
'optional'
:
True
},
category
=
'dev'
)
package
.
add_dependency
(
'B'
,
'^1.1'
)
installer
.
update
(
True
)
installer
.
whitelist
({
'B'
:
'^1.1'
})
installer
.
run
()
expected
=
fixture
(
'with-category-change'
)
assert
locker
.
written_data
==
expected
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