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
6ae4855d
Commit
6ae4855d
authored
Oct 09, 2022
by
Bart Kamphorst
Committed by
Bjorn Neergaard
Oct 10, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tests: 100% coverage for test_repository
parent
8a500f05
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
156 additions
and
22 deletions
+156
-22
tests/repositories/test_pool.py
+140
-17
tests/repositories/test_repository.py
+16
-5
No files found.
tests/repositories/test_pool.py
View file @
6ae4855d
...
@@ -8,39 +8,46 @@ from poetry.repositories import Pool
...
@@ -8,39 +8,46 @@ from poetry.repositories import Pool
from
poetry.repositories
import
Repository
from
poetry.repositories
import
Repository
from
poetry.repositories.exceptions
import
PackageNotFound
from
poetry.repositories.exceptions
import
PackageNotFound
from
poetry.repositories.legacy_repository
import
LegacyRepository
from
poetry.repositories.legacy_repository
import
LegacyRepository
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_package
def
test_pool_raises_package_not_found_when_no_package_is_found
()
->
None
:
def
test_pool
()
->
None
:
pool
=
Pool
()
pool
.
add_repository
(
Repository
(
"repo"
))
with
pytest
.
raises
(
PackageNotFound
):
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
))
def
test_pool
():
pool
=
Pool
()
pool
=
Pool
()
assert
len
(
pool
.
repositories
)
==
0
assert
len
(
pool
.
repositories
)
==
0
assert
not
pool
.
has_default
()
assert
not
pool
.
has_default
()
assert
not
pool
.
has_primary_repositories
()
def
test_pool_with_initial_repositories
():
def
test_pool_with_initial_repositories
()
->
None
:
repo
=
Repository
(
"repo"
)
repo
=
Repository
(
"repo"
)
pool
=
Pool
([
repo
])
pool
=
Pool
([
repo
])
assert
len
(
pool
.
repositories
)
==
1
assert
len
(
pool
.
repositories
)
==
1
assert
not
pool
.
has_default
()
assert
not
pool
.
has_default
()
assert
pool
.
has_primary_repositories
()
def
test_repository_no_repository
():
def
test_repository_no_repository
()
->
None
:
pool
=
Pool
()
pool
=
Pool
()
with
pytest
.
raises
(
ValueError
):
with
pytest
.
raises
(
ValueError
):
pool
.
repository
(
"foo"
)
pool
.
repository
(
"foo"
)
def
test_repository_from_normal_pool
():
def
test_adding_repositories_with_same_name_twice_raises_value_error
()
->
None
:
repo1
=
Repository
(
"repo"
)
repo2
=
Repository
(
"repo"
)
with
pytest
.
raises
(
ValueError
):
Pool
([
repo1
,
repo2
])
with
pytest
.
raises
(
ValueError
):
Pool
([
repo1
])
.
add_repository
(
repo2
)
def
test_repository_from_normal_pool
()
->
None
:
repo
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
pool
=
Pool
()
pool
=
Pool
()
pool
.
add_repository
(
repo
)
pool
.
add_repository
(
repo
)
...
@@ -48,7 +55,7 @@ def test_repository_from_normal_pool():
...
@@ -48,7 +55,7 @@ def test_repository_from_normal_pool():
assert
pool
.
repository
(
"foo"
)
is
repo
assert
pool
.
repository
(
"foo"
)
is
repo
def
test_repository_from_secondary_pool
():
def
test_repository_from_secondary_pool
()
->
None
:
repo
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
pool
=
Pool
()
pool
=
Pool
()
pool
.
add_repository
(
repo
,
secondary
=
True
)
pool
.
add_repository
(
repo
,
secondary
=
True
)
...
@@ -56,7 +63,7 @@ def test_repository_from_secondary_pool():
...
@@ -56,7 +63,7 @@ def test_repository_from_secondary_pool():
assert
pool
.
repository
(
"foo"
)
is
repo
assert
pool
.
repository
(
"foo"
)
is
repo
def
test_repository_with_normal_default_and_secondary_repositories
():
def
test_repository_with_normal_default_and_secondary_repositories
()
->
None
:
secondary
=
LegacyRepository
(
"secondary"
,
"https://secondary.com"
)
secondary
=
LegacyRepository
(
"secondary"
,
"https://secondary.com"
)
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
...
@@ -73,9 +80,17 @@ def test_repository_with_normal_default_and_secondary_repositories():
...
@@ -73,9 +80,17 @@ def test_repository_with_normal_default_and_secondary_repositories():
assert
pool
.
repository
(
"foo"
)
is
repo1
assert
pool
.
repository
(
"foo"
)
is
repo1
assert
pool
.
repository
(
"bar"
)
is
repo2
assert
pool
.
repository
(
"bar"
)
is
repo2
assert
pool
.
has_default
()
assert
pool
.
has_default
()
assert
pool
.
has_primary_repositories
()
def
test_remove_repository
():
def
test_remove_non_existing_repository_raises_indexerror
()
->
None
:
pool
=
Pool
()
with
pytest
.
raises
(
IndexError
):
pool
.
remove_repository
(
"foo"
)
def
test_remove_existing_repository_successful
()
->
None
:
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
repo3
=
LegacyRepository
(
"baz"
,
"https://baz.quux"
)
repo3
=
LegacyRepository
(
"baz"
,
"https://baz.quux"
)
...
@@ -91,7 +106,7 @@ def test_remove_repository():
...
@@ -91,7 +106,7 @@ def test_remove_repository():
assert
pool
.
repository
(
"baz"
)
is
repo3
assert
pool
.
repository
(
"baz"
)
is
repo3
def
test_remove_default_repository
():
def
test_remove_default_repository
()
->
None
:
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
...
@@ -115,7 +130,7 @@ def test_remove_default_repository():
...
@@ -115,7 +130,7 @@ def test_remove_default_repository():
assert
not
pool
.
has_repository
(
"default"
)
assert
not
pool
.
has_repository
(
"default"
)
def
test_repository_ordering
():
def
test_repository_ordering
()
->
None
:
default1
=
LegacyRepository
(
"default1"
,
"https://default1.com"
)
default1
=
LegacyRepository
(
"default1"
,
"https://default1.com"
)
default2
=
LegacyRepository
(
"default2"
,
"https://default2.com"
)
default2
=
LegacyRepository
(
"default2"
,
"https://default2.com"
)
primary1
=
LegacyRepository
(
"primary1"
,
"https://primary1.com"
)
primary1
=
LegacyRepository
(
"primary1"
,
"https://primary1.com"
)
...
@@ -141,3 +156,111 @@ def test_repository_ordering():
...
@@ -141,3 +156,111 @@ def test_repository_ordering():
assert
pool
.
repositories
==
[
default1
,
primary1
,
primary3
,
secondary1
,
secondary3
]
assert
pool
.
repositories
==
[
default1
,
primary1
,
primary3
,
secondary1
,
secondary3
]
with
pytest
.
raises
(
ValueError
):
with
pytest
.
raises
(
ValueError
):
pool
.
add_repository
(
default2
,
default
=
True
)
pool
.
add_repository
(
default2
,
default
=
True
)
def
test_pool_get_package_in_any_repository
()
->
None
:
package1
=
get_package
(
"foo"
,
"1.0.0"
)
repo1
=
Repository
(
"repo1"
,
[
package1
])
package2
=
get_package
(
"bar"
,
"1.0.0"
)
repo2
=
Repository
(
"repo2"
,
[
package1
,
package2
])
pool
=
Pool
([
repo1
,
repo2
])
returned_package1
=
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
))
returned_package2
=
pool
.
package
(
"bar"
,
Version
.
parse
(
"1.0.0"
))
assert
returned_package1
==
package1
assert
returned_package2
==
package2
def
test_pool_get_package_in_specified_repository
()
->
None
:
package
=
get_package
(
"foo"
,
"1.0.0"
)
repo1
=
Repository
(
"repo1"
)
repo2
=
Repository
(
"repo2"
,
[
package
])
pool
=
Pool
([
repo1
,
repo2
])
returned_package
=
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
),
repository
=
"repo2"
)
assert
returned_package
==
package
def
test_pool_no_package_from_any_repository_raises_package_not_found
()
->
None
:
pool
=
Pool
()
pool
.
add_repository
(
Repository
(
"repo"
))
with
pytest
.
raises
(
PackageNotFound
):
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
))
def
test_pool_no_package_from_specified_repository_raises_package_not_found
()
->
None
:
package
=
get_package
(
"foo"
,
"1.0.0"
)
repo1
=
Repository
(
"repo1"
)
repo2
=
Repository
(
"repo2"
,
[
package
])
pool
=
Pool
([
repo1
,
repo2
])
with
pytest
.
raises
(
PackageNotFound
):
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
),
repository
=
"repo1"
)
def
test_pool_find_packages_in_any_repository
()
->
None
:
package1
=
get_package
(
"foo"
,
"1.1.1"
)
package2
=
get_package
(
"foo"
,
"1.2.3"
)
package3
=
get_package
(
"foo"
,
"2.0.0"
)
package4
=
get_package
(
"bar"
,
"1.2.3"
)
repo1
=
Repository
(
"repo1"
,
[
package1
,
package3
])
repo2
=
Repository
(
"repo2"
,
[
package1
,
package2
,
package4
])
pool
=
Pool
([
repo1
,
repo2
])
available_dependency
=
get_dependency
(
"foo"
,
"^1.0.0"
)
returned_packages_available
=
pool
.
find_packages
(
available_dependency
)
unavailable_dependency
=
get_dependency
(
"foo"
,
"999.9.9"
)
returned_packages_unavailable
=
pool
.
find_packages
(
unavailable_dependency
)
assert
returned_packages_available
==
[
package1
,
package1
,
package2
]
assert
returned_packages_unavailable
==
[]
def
test_pool_find_packages_in_specified_repository
()
->
None
:
package_foo1
=
get_package
(
"foo"
,
"1.1.1"
)
package_foo2
=
get_package
(
"foo"
,
"1.2.3"
)
package_foo3
=
get_package
(
"foo"
,
"2.0.0"
)
package_bar
=
get_package
(
"bar"
,
"1.2.3"
)
repo1
=
Repository
(
"repo1"
,
[
package_foo1
,
package_foo3
])
repo2
=
Repository
(
"repo2"
,
[
package_foo1
,
package_foo2
,
package_bar
])
pool
=
Pool
([
repo1
,
repo2
])
available_dependency
=
get_dependency
(
"foo"
,
"^1.0.0"
)
available_dependency
.
source_name
=
"repo2"
returned_packages_available
=
pool
.
find_packages
(
available_dependency
)
unavailable_dependency
=
get_dependency
(
"foo"
,
"999.9.9"
)
unavailable_dependency
.
source_name
=
"repo2"
returned_packages_unavailable
=
pool
.
find_packages
(
unavailable_dependency
)
assert
returned_packages_available
==
[
package_foo1
,
package_foo2
]
assert
returned_packages_unavailable
==
[]
def
test_search_no_legacy_repositories
()
->
None
:
package_foo1
=
get_package
(
"foo"
,
"1.0.0"
)
package_foo2
=
get_package
(
"foo"
,
"2.0.0"
)
package_foobar
=
get_package
(
"foobar"
,
"1.0.0"
)
repo1
=
Repository
(
"repo1"
,
[
package_foo1
,
package_foo2
])
repo2
=
Repository
(
"repo2"
,
[
package_foo1
,
package_foobar
])
pool
=
Pool
([
repo1
,
repo2
])
assert
pool
.
search
(
"foo"
)
==
[
package_foo1
,
package_foo2
,
package_foo1
,
package_foobar
,
]
assert
pool
.
search
(
"bar"
)
==
[
package_foobar
]
assert
pool
.
search
(
"nothing"
)
==
[]
def
test_search_legacy_repositories_are_skipped
()
->
None
:
package
=
get_package
(
"foo"
,
"1.0.0"
)
repo1
=
Repository
(
"repo1"
,
[
package
])
repo2
=
LegacyRepository
(
"repo2"
,
"https://fake.repo/"
)
pool
=
Pool
([
repo1
,
repo2
])
assert
pool
.
search
(
"foo"
)
==
[
package
]
tests/repositories/test_repository.py
View file @
6ae4855d
...
@@ -2,18 +2,18 @@ from __future__ import annotations
...
@@ -2,18 +2,18 @@ from __future__ import annotations
import
pytest
import
pytest
from
poetry.core.constraints.version
import
Version
from
poetry.core.semver.version
import
Version
from
poetry.core.packages.package
import
Package
from
poetry.factory
import
Factory
from
poetry.factory
import
Factory
from
poetry.repositories
import
Repository
from
poetry.repositories
import
Repository
from
tests.helpers
import
get_package
@pytest.fixture
(
scope
=
"module"
)
@pytest.fixture
(
scope
=
"module"
)
def
black_repository
()
->
Repository
:
def
black_repository
()
->
Repository
:
repo
=
Repository
(
"repo"
)
repo
=
Repository
(
"repo"
)
repo
.
add_package
(
P
ackage
(
"black"
,
"19.10b0"
))
repo
.
add_package
(
get_p
ackage
(
"black"
,
"19.10b0"
))
repo
.
add_package
(
P
ackage
(
"black"
,
"21.11b0"
,
yanked
=
"reason"
))
repo
.
add_package
(
get_p
ackage
(
"black"
,
"21.11b0"
,
yanked
=
"reason"
))
return
repo
return
repo
...
@@ -63,7 +63,18 @@ def test_package_yanked(
...
@@ -63,7 +63,18 @@ def test_package_yanked(
def
test_package_pretty_name_is_kept
()
->
None
:
def
test_package_pretty_name_is_kept
()
->
None
:
pretty_name
=
"Not_canoni-calized.name"
pretty_name
=
"Not_canoni-calized.name"
repo
=
Repository
(
"repo"
)
repo
=
Repository
(
"repo"
)
repo
.
add_package
(
P
ackage
(
pretty_name
,
"1.0"
))
repo
.
add_package
(
get_p
ackage
(
pretty_name
,
"1.0"
))
package
=
repo
.
package
(
pretty_name
,
Version
.
parse
(
"1.0"
))
package
=
repo
.
package
(
pretty_name
,
Version
.
parse
(
"1.0"
))
assert
package
.
pretty_name
==
pretty_name
assert
package
.
pretty_name
==
pretty_name
def
test_search
()
->
None
:
package_foo1
=
get_package
(
"foo"
,
"1.0.0"
)
package_foo2
=
get_package
(
"foo"
,
"2.0.0"
)
package_foobar
=
get_package
(
"foobar"
,
"1.0.0"
)
repo
=
Repository
(
"repo"
,
[
package_foo1
,
package_foo2
,
package_foobar
])
assert
repo
.
search
(
"foo"
)
==
[
package_foo1
,
package_foo2
,
package_foobar
]
assert
repo
.
search
(
"bar"
)
==
[
package_foobar
]
assert
repo
.
search
(
"nothing"
)
==
[]
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