Commit 69f2f6db by Sébastien Eustace

Fix potential errors when resolving dependencies for specific packages

parent e82ec7dd
......@@ -5,6 +5,7 @@
### Fixed
- Fixed installation of Poetry git dependencies with a build system.
- Fixed possible errors when resolving dependencies for specific packages.
## [0.12.4] - 2018-10-21
......
......@@ -73,6 +73,7 @@ class Package(object):
self._python_constraint = parse_constraint("*")
self._python_marker = AnyMarker()
self.platform = None
self.marker = AnyMarker()
self.root_dir = None
......@@ -168,19 +169,6 @@ class Package(object):
return self._python_marker
@property
def platform(self): # type: () -> str
return self._platform
@platform.setter
def platform(self, value): # type: (str) -> None
self._platform = value
self._platform_constraint = parse_generic_constraint(value)
@property
def platform_constraint(self):
return self._platform_constraint
@property
def license(self):
return self._license
......
class RepositoryError(Exception):
pass
class PackageNotFound(Exception):
pass
......@@ -41,6 +41,7 @@ from poetry.utils._compat import Path
from poetry.utils.helpers import canonicalize_name, get_http_basic_auth
from poetry.version.markers import InvalidMarker
from .exceptions import PackageNotFound
from .pypi_repository import PyPiRepository
......@@ -297,7 +298,7 @@ class LegacyRepository(PyPiRepository):
def _get_release_info(self, name, version): # type: (str, str) -> dict
page = self._get("/{}/".format(canonicalize_name(name).replace(".", "-")))
if page is None:
raise ValueError('No package named "{}"'.format(name))
raise PackageNotFound('No package named "{}"'.format(name))
data = {
"name": name,
......@@ -310,7 +311,7 @@ class LegacyRepository(PyPiRepository):
links = list(page.links_for_version(Version.parse(version)))
if not links:
raise ValueError(
raise PackageNotFound(
'No valid distribution links found for package: "{}" version: "{}"'.format(
name, version
)
......
from typing import List
from typing import Union
import poetry.packages
from .base_repository import BaseRepository
from .exceptions import PackageNotFound
from .repository import Repository
......@@ -65,7 +65,7 @@ class Pool(BaseRepository):
for repository in self._repositories:
try:
package = repository.package(name, version, extras=extras)
except ValueError:
except PackageNotFound:
continue
if package:
......
......@@ -41,6 +41,7 @@ from poetry.utils.helpers import temporary_directory
from poetry.utils.env import Env
from poetry.version.markers import InvalidMarker
from .exceptions import PackageNotFound
from .repository import Repository
......@@ -225,7 +226,7 @@ class PyPiRepository(Repository):
def _get_package_info(self, name): # type: (str) -> dict
data = self._get("pypi/{}/json".format(name))
if data is None:
raise ValueError("Package [{}] not found.".format(name))
raise PackageNotFound("Package [{}] not found.".format(name))
return data
......@@ -261,7 +262,7 @@ class PyPiRepository(Repository):
json_data = self._get("pypi/{}/{}/json".format(name, version))
if json_data is None:
raise ValueError("Package [{}] not found.".format(name))
raise PackageNotFound("Package [{}] not found.".format(name))
info = json_data["info"]
data = {
......
import pytest
from poetry.repositories.exceptions import PackageNotFound
from poetry.repositories.legacy_repository import LegacyRepository
from poetry.repositories.legacy_repository import Page
from poetry.utils._compat import Path
......@@ -55,5 +56,5 @@ def test_sdist_format_support():
def test_missing_version(mocker):
repo = MockRepository()
with pytest.raises(ValueError):
with pytest.raises(PackageNotFound):
repo._get_release_info("missing_version", "1.1.0")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment