Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix config install requester for download #4172

Merged
merged 2 commits into from
Dec 19, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions conans/client/conan_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,18 +221,19 @@ def factory(interactive=None):
if interactive is None:
interactive = not get_env("CONAN_NON_INTERACTIVE", False)
conan = ConanAPIV1(client_cache, user_io, get_conan_runner(), remote_manager,
hook_manager, interactive=interactive)
hook_manager, requester, interactive=interactive)

return conan, client_cache, user_io

def __init__(self, client_cache, user_io, runner, remote_manager, hook_manager,
def __init__(self, client_cache, user_io, runner, remote_manager, hook_manager, requester,
interactive=True):
assert isinstance(user_io, UserIO)
assert isinstance(client_cache, ClientCache)
self._client_cache = client_cache
self._user_io = user_io
self._runner = runner
self._remote_manager = remote_manager
self._requester = requester
if not interactive:
self._user_io.disable_input()

Expand Down Expand Up @@ -559,9 +560,8 @@ def config_rm(self, item):
def config_install(self, path_or_url, verify_ssl, config_type=None, args=None):

from conans.client.conf.config_installer import configuration_install
requester = self._remote_manager._auth_manager._rest_client.requester, # FIXME: Look out!
return configuration_install(path_or_url, self._client_cache, self._user_io.out, verify_ssl,
requester=requester, config_type=config_type, args=args)
requester=self._requester, config_type=config_type, args=args)

def _info_args(self, reference, install_folder, profile_name, settings, options, env):
cwd = get_cwd()
Expand Down
18 changes: 17 additions & 1 deletion conans/test/functional/command/config_install_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from conans.client.remote_registry import Remote
from conans.client.rest.uploader_downloader import Downloader
from conans.test.utils.test_files import temp_folder
from conans.test.utils.tools import TestClient
from conans.test.utils.tools import TestClient, StoppableThreadBottle
from conans.util.files import load, mkdir, save, save_files

win_profile = """[settings]
Expand Down Expand Up @@ -407,3 +407,19 @@ def test_git_checkout_is_possible(self):
check_path = os.path.join(folder, ".git")
self._check("git, %s, True, -b other_branch" % check_path)
self.assertTrue(os.path.exists(other_path))

def test_config_install_requester(self):
# https://github.com/conan-io/conan/issues/4169
http_server = StoppableThreadBottle()
path = self._create_zip()

from bottle import static_file, auth_basic

@http_server.server.get("/myconfig.zip")
def get_zip():
return static_file(os.path.basename(path), os.path.dirname(path))

http_server.run_server()
self.client.run("config install http://localhost:%s/myconfig.zip" % http_server.port)
self.assertIn("Unzipping", self.client.out)
http_server.stop()
2 changes: 1 addition & 1 deletion conans/test/utils/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ def run(self, command_line, user_io=None, assert_error=False):
# Settings preprocessor
interactive = not get_env("CONAN_NON_INTERACTIVE", False)
conan = Conan(self.client_cache, self.user_io, self.runner, self.remote_manager,
self.hook_manager, interactive=interactive)
self.hook_manager, requester, interactive=interactive)
outputer = CommandOutputer(self.user_io, self.client_cache)
command = Command(conan, self.client_cache, self.user_io, outputer)
args = shlex.split(command_line)
Expand Down