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
f27308fa
Unverified
Commit
f27308fa
authored
Mar 05, 2023
by
Harry Mander
Committed by
GitHub
Mar 04, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: append subdirectory to archive path (#7580)
parent
6a0087b4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
23 deletions
+35
-23
src/poetry/installation/executor.py
+4
-23
tests/installation/test_executor.py
+31
-0
No files found.
src/poetry/installation/executor.py
View file @
f27308fa
...
@@ -506,7 +506,7 @@ class Executor:
...
@@ -506,7 +506,7 @@ class Executor:
elif
package
.
source_type
==
"file"
:
elif
package
.
source_type
==
"file"
:
archive
=
self
.
_prepare_archive
(
operation
)
archive
=
self
.
_prepare_archive
(
operation
)
elif
package
.
source_type
==
"directory"
:
elif
package
.
source_type
==
"directory"
:
archive
=
self
.
_prepare_
directory_
archive
(
operation
)
archive
=
self
.
_prepare_archive
(
operation
)
cleanup_archive
=
True
cleanup_archive
=
True
elif
package
.
source_type
==
"url"
:
elif
package
.
source_type
==
"url"
:
assert
package
.
source_url
is
not
None
assert
package
.
source_url
is
not
None
...
@@ -569,6 +569,8 @@ class Executor:
...
@@ -569,6 +569,8 @@ class Executor:
assert
package
.
source_url
is
not
None
assert
package
.
source_url
is
not
None
archive
=
Path
(
package
.
source_url
)
archive
=
Path
(
package
.
source_url
)
if
package
.
source_subdirectory
:
archive
=
archive
/
package
.
source_subdirectory
if
not
Path
(
package
.
source_url
)
.
is_absolute
()
and
package
.
root_dir
:
if
not
Path
(
package
.
source_url
)
.
is_absolute
()
and
package
.
root_dir
:
archive
=
package
.
root_dir
/
archive
archive
=
package
.
root_dir
/
archive
...
@@ -576,27 +578,6 @@ class Executor:
...
@@ -576,27 +578,6 @@ class Executor:
return
self
.
_chef
.
prepare
(
archive
,
editable
=
package
.
develop
)
return
self
.
_chef
.
prepare
(
archive
,
editable
=
package
.
develop
)
def
_prepare_directory_archive
(
self
,
operation
:
Install
|
Update
)
->
Path
:
package
=
operation
.
package
operation_message
=
self
.
get_operation_message
(
operation
)
message
=
(
f
" <fg=blue;options=bold>•</> {operation_message}:"
" <info>Building...</info>"
)
self
.
_write
(
operation
,
message
)
assert
package
.
source_url
is
not
None
if
package
.
root_dir
:
req
=
package
.
root_dir
/
package
.
source_url
else
:
req
=
Path
(
package
.
source_url
)
.
resolve
(
strict
=
False
)
if
package
.
source_subdirectory
:
req
/=
package
.
source_subdirectory
return
self
.
_prepare_archive
(
operation
)
def
_prepare_git_archive
(
self
,
operation
:
Install
|
Update
)
->
Path
:
def
_prepare_git_archive
(
self
,
operation
:
Install
|
Update
)
->
Path
:
from
poetry.vcs.git
import
Git
from
poetry.vcs.git
import
Git
...
@@ -619,7 +600,7 @@ class Executor:
...
@@ -619,7 +600,7 @@ class Executor:
original_url
=
package
.
source_url
original_url
=
package
.
source_url
package
.
_source_url
=
str
(
source
.
path
)
package
.
_source_url
=
str
(
source
.
path
)
archive
=
self
.
_prepare_
directory_
archive
(
operation
)
archive
=
self
.
_prepare_archive
(
operation
)
package
.
_source_url
=
original_url
package
.
_source_url
=
original_url
...
...
tests/installation/test_executor.py
View file @
f27308fa
...
@@ -776,6 +776,37 @@ def test_executor_should_write_pep610_url_references_for_git(
...
@@ -776,6 +776,37 @@ def test_executor_should_write_pep610_url_references_for_git(
)
)
def
test_executor_should_append_subdirectory_for_git
(
mocker
:
MockerFixture
,
tmp_venv
:
VirtualEnv
,
pool
:
RepositoryPool
,
config
:
Config
,
io
:
BufferedIO
,
mock_file_downloads
:
None
,
wheel
:
Path
,
)
->
None
:
package
=
Package
(
"demo"
,
"0.1.2"
,
source_type
=
"git"
,
source_reference
=
"master"
,
source_resolved_reference
=
"123456"
,
source_url
=
"https://github.com/demo/subdirectories.git"
,
source_subdirectory
=
"two"
,
)
chef
=
Chef
(
config
,
tmp_venv
,
Factory
.
create_pool
(
config
))
chef
.
set_directory_wheel
(
wheel
)
spy
=
mocker
.
spy
(
chef
,
"prepare"
)
executor
=
Executor
(
tmp_venv
,
pool
,
config
,
io
)
executor
.
_chef
=
chef
executor
.
execute
([
Install
(
package
)])
archive_arg
=
spy
.
call_args
[
0
][
0
]
assert
archive_arg
==
tmp_venv
.
path
/
"src/demo/subdirectories/two"
def
test_executor_should_write_pep610_url_references_for_git_with_subdirectories
(
def
test_executor_should_write_pep610_url_references_for_git_with_subdirectories
(
tmp_venv
:
VirtualEnv
,
tmp_venv
:
VirtualEnv
,
pool
:
RepositoryPool
,
pool
:
RepositoryPool
,
...
...
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