diff --git a/poetry/installation/chooser.py b/poetry/installation/chooser.py index 6d9e92e0b1f..1ac2d469691 100644 --- a/poetry/installation/chooser.py +++ b/poetry/installation/chooser.py @@ -82,7 +82,7 @@ def choose_for(self, package): # type: (Package) -> Link return chosen - def _get_links(self, package): # type: (Package) -> List[Link] + def _get_repository(self, package): if not package.source_type: if not self._pool.has_repository("pypi"): repository = self._pool.repositories[0] @@ -90,6 +90,10 @@ def _get_links(self, package): # type: (Package) -> List[Link] repository = self._pool.repository("pypi") else: repository = self._pool.repository(package.source_reference) + return repository + + def _get_links(self, package): # type: (Package) -> List[Link] + repository = self._get_repository(package) links = repository.find_links_for_package(package) diff --git a/poetry/installation/executor.py b/poetry/installation/executor.py index a65dbb4a0e1..fbc66937f09 100644 --- a/poetry/installation/executor.py +++ b/poetry/installation/executor.py @@ -584,9 +584,10 @@ def _download_link(self, operation, link): archive = self._chef.get_cached_archive_for_link(link) if archive is link: + repository = self._chooser._get_repository(operation.package) # No cached distributions was found, so we download and prepare it try: - archive = self._download_archive(operation, link) + archive = self._download_archive(operation, link, repository) except BaseException: cache_directory = self._chef.get_cache_directory_for_link(link) cached_file = cache_directory.joinpath(link.filename) @@ -611,9 +612,13 @@ def _download_link(self, operation, link): return archive - def _download_archive(self, operation, link): # type: (Operation, Link) -> Path + def _download_archive(self, operation, link, repository): # type: (Operation, Link, LegacyRepository) -> Path response = self._authenticator.request( - "get", link.url, stream=True, io=self._sections.get(id(operation), self._io) + "get", + link.url, + stream=True, + io=self._sections.get(id(operation), self._io), + verify=getattr(repository, 'cert'), ) wheel_size = response.headers.get("content-length") operation_message = self.get_operation_message(operation)