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
f6b06805
Commit
f6b06805
authored
Jun 30, 2020
by
Arun Babu Neelicattu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
installed repository: refactor test cases
parent
cee833ac
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
5 deletions
+33
-5
tests/repositories/test_installed_repository.py
+33
-5
No files found.
tests/repositories/test_installed_repository.py
View file @
f6b06805
import
pytest
from
poetry.repositories.installed_repository
import
InstalledRepository
from
poetry.repositories.installed_repository
import
InstalledRepository
from
poetry.utils._compat
import
PY36
from
poetry.utils._compat
import
Path
from
poetry.utils._compat
import
Path
from
poetry.utils._compat
import
metadata
from
poetry.utils._compat
import
metadata
from
poetry.utils._compat
import
zipp
from
poetry.utils._compat
import
zipp
from
poetry.utils.env
import
MockEnv
as
BaseMockEnv
from
poetry.utils.env
import
MockEnv
as
BaseMockEnv
from
pytest_mock.plugin
import
MockFixture
FIXTURES_DIR
=
Path
(
__file__
)
.
parent
/
"fixtures"
FIXTURES_DIR
=
Path
(
__file__
)
.
parent
/
"fixtures"
...
@@ -28,7 +32,13 @@ class MockEnv(BaseMockEnv):
...
@@ -28,7 +32,13 @@ class MockEnv(BaseMockEnv):
return
SITE_PACKAGES
return
SITE_PACKAGES
def
test_load
(
mocker
):
@pytest.fixture
def
env
():
# type: () -> MockEnv
return
MockEnv
(
path
=
ENV_DIR
)
@pytest.fixture
def
repository
(
mocker
,
env
):
# type: (MockFixture, MockEnv) -> InstalledRepository
mocker
.
patch
(
mocker
.
patch
(
"poetry.utils._compat.metadata.Distribution.discover"
,
"poetry.utils._compat.metadata.Distribution.discover"
,
return_value
=
INSTALLED_RESULTS
,
return_value
=
INSTALLED_RESULTS
,
...
@@ -45,10 +55,19 @@ def test_load(mocker):
...
@@ -45,10 +55,19 @@ def test_load(mocker):
],
],
)
)
mocker
.
patch
(
"poetry.repositories.installed_repository._VENDORS"
,
str
(
VENDOR_DIR
))
mocker
.
patch
(
"poetry.repositories.installed_repository._VENDORS"
,
str
(
VENDOR_DIR
))
repository
=
InstalledRepository
.
load
(
MockEnv
(
path
=
ENV_DIR
))
return
InstalledRepository
.
load
(
env
)
def
test_load_successful
(
repository
):
assert
len
(
repository
.
packages
)
==
5
assert
len
(
repository
.
packages
)
==
5
def
test_load_ensure_isolation
(
repository
):
for
pkg
in
repository
.
packages
:
assert
pkg
.
name
!=
"attrs"
def
test_load_standard_package
(
repository
):
cleo
=
repository
.
packages
[
0
]
cleo
=
repository
.
packages
[
0
]
assert
cleo
.
name
==
"cleo"
assert
cleo
.
name
==
"cleo"
assert
cleo
.
version
.
text
==
"0.7.6"
assert
cleo
.
version
.
text
==
"0.7.6"
...
@@ -61,6 +80,8 @@ def test_load(mocker):
...
@@ -61,6 +80,8 @@ def test_load(mocker):
assert
foo
.
name
==
"foo"
assert
foo
.
name
==
"foo"
assert
foo
.
version
.
text
==
"0.1.0"
assert
foo
.
version
.
text
==
"0.1.0"
def
test_load_git_package
(
repository
):
pendulum
=
repository
.
packages
[
4
]
pendulum
=
repository
.
packages
[
4
]
assert
pendulum
.
name
==
"pendulum"
assert
pendulum
.
name
==
"pendulum"
assert
pendulum
.
version
.
text
==
"2.0.5"
assert
pendulum
.
version
.
text
==
"2.0.5"
...
@@ -69,16 +90,23 @@ def test_load(mocker):
...
@@ -69,16 +90,23 @@ def test_load(mocker):
assert
pendulum
.
source_url
==
"https://github.com/sdispater/pendulum.git"
assert
pendulum
.
source_url
==
"https://github.com/sdispater/pendulum.git"
assert
pendulum
.
source_reference
==
"bb058f6b78b2d28ef5d9a5e759cfa179a1a713d6"
assert
pendulum
.
source_reference
==
"bb058f6b78b2d28ef5d9a5e759cfa179a1a713d6"
for
pkg
in
repository
.
packages
:
assert
pkg
.
name
!=
"attrs"
@pytest.mark.skipif
(
not
PY36
,
reason
=
"pathlib.resolve() does not support strict argument"
)
def
test_load_editable_package
(
repository
):
# test editable package with text .pth file
# test editable package with text .pth file
editable
=
repository
.
packages
[
1
]
editable
=
repository
.
packages
[
1
]
assert
editable
.
name
==
"editable"
assert
editable
.
name
==
"editable"
assert
editable
.
version
.
text
==
"2.3.4"
assert
editable
.
version
.
text
==
"2.3.4"
assert
editable
.
source_type
==
"directory"
assert
editable
.
source_type
==
"directory"
assert
editable
.
source_url
==
Path
(
"/path/to/editable"
)
.
as_posix
()
assert
(
editable
.
source_url
==
Path
(
"/path/to/editable"
)
.
resolve
(
strict
=
False
)
.
as_posix
()
)
def
test_load_editable_with_import_package
(
repository
):
# test editable package with executable .pth file
# test editable package with executable .pth file
editable
=
repository
.
packages
[
2
]
editable
=
repository
.
packages
[
2
]
assert
editable
.
name
==
"editable-with-import"
assert
editable
.
name
==
"editable-with-import"
...
...
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