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
Show 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
from
poetry.repositories
import
Repository
from
poetry.repositories.exceptions
import
PackageNotFound
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
:
pool
=
Pool
()
pool
.
add_repository
(
Repository
(
"repo"
))
with
pytest
.
raises
(
PackageNotFound
):
pool
.
package
(
"foo"
,
Version
.
parse
(
"1.0.0"
))
def
test_pool
():
def
test_pool
()
->
None
:
pool
=
Pool
()
assert
len
(
pool
.
repositories
)
==
0
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"
)
pool
=
Pool
([
repo
])
assert
len
(
pool
.
repositories
)
==
1
assert
not
pool
.
has_default
()
assert
pool
.
has_primary_repositories
()
def
test_repository_no_repository
():
def
test_repository_no_repository
()
->
None
:
pool
=
Pool
()
with
pytest
.
raises
(
ValueError
):
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"
)
pool
=
Pool
()
pool
.
add_repository
(
repo
)
...
...
@@ -48,7 +55,7 @@ def test_repository_from_normal_pool():
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"
)
pool
=
Pool
()
pool
.
add_repository
(
repo
,
secondary
=
True
)
...
...
@@ -56,7 +63,7 @@ def test_repository_from_secondary_pool():
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"
)
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
...
...
@@ -73,9 +80,17 @@ def test_repository_with_normal_default_and_secondary_repositories():
assert
pool
.
repository
(
"foo"
)
is
repo1
assert
pool
.
repository
(
"bar"
)
is
repo2
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"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
repo3
=
LegacyRepository
(
"baz"
,
"https://baz.quux"
)
...
...
@@ -91,7 +106,7 @@ def test_remove_repository():
assert
pool
.
repository
(
"baz"
)
is
repo3
def
test_remove_default_repository
():
def
test_remove_default_repository
()
->
None
:
default
=
LegacyRepository
(
"default"
,
"https://default.com"
)
repo1
=
LegacyRepository
(
"foo"
,
"https://foo.bar"
)
repo2
=
LegacyRepository
(
"bar"
,
"https://bar.baz"
)
...
...
@@ -115,7 +130,7 @@ def test_remove_default_repository():
assert
not
pool
.
has_repository
(
"default"
)
def
test_repository_ordering
():
def
test_repository_ordering
()
->
None
:
default1
=
LegacyRepository
(
"default1"
,
"https://default1.com"
)
default2
=
LegacyRepository
(
"default2"
,
"https://default2.com"
)
primary1
=
LegacyRepository
(
"primary1"
,
"https://primary1.com"
)
...
...
@@ -141,3 +156,111 @@ def test_repository_ordering():
assert
pool
.
repositories
==
[
default1
,
primary1
,
primary3
,
secondary1
,
secondary3
]
with
pytest
.
raises
(
ValueError
):
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
import
pytest
from
poetry.core.constraints.version
import
Version
from
poetry.core.packages.package
import
Package
from
poetry.core.semver.version
import
Version
from
poetry.factory
import
Factory
from
poetry.repositories
import
Repository
from
tests.helpers
import
get_package
@pytest.fixture
(
scope
=
"module"
)
def
black_repository
()
->
Repository
:
repo
=
Repository
(
"repo"
)
repo
.
add_package
(
P
ackage
(
"black"
,
"19.10b0"
))
repo
.
add_package
(
P
ackage
(
"black"
,
"21.11b0"
,
yanked
=
"reason"
))
repo
.
add_package
(
get_p
ackage
(
"black"
,
"19.10b0"
))
repo
.
add_package
(
get_p
ackage
(
"black"
,
"21.11b0"
,
yanked
=
"reason"
))
return
repo
...
...
@@ -63,7 +63,18 @@ def test_package_yanked(
def
test_package_pretty_name_is_kept
()
->
None
:
pretty_name
=
"Not_canoni-calized.name"
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"
))
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