Example #1
0
    def _init_collaborators(self, user_io=None):

        output = TestBufferConanOutput()
        self.user_io = user_io or MockedUserIO(self.users, out=output)
        self.cache = ClientCache(self.base_folder, self.storage_folder, output)
        self.runner = TestRunner(output, runner=self.conan_runner)

        # Check if servers are real
        real_servers = False
        for server in self.servers.values():
            if isinstance(server, str) or isinstance(
                    server, ArtifactoryServer):  # Just URI
                real_servers = True
                break

        with tools.environment_append(self.cache.config.env_vars):
            if real_servers:
                requester = requests.Session()
            else:
                if self.requester_class:
                    requester = self.requester_class(self.servers)
                else:
                    requester = TestRequester(self.servers)

            self.requester = ConanRequester(requester, self.cache,
                                            get_request_timeout())

            self.hook_manager = HookManager(self.cache.hooks_path,
                                            get_env("CONAN_HOOKS", list()),
                                            self.user_io.out)

            self.localdb, self.rest_api_client, self.remote_manager = \
                Conan.instance_remote_manager(self.requester, self.cache,
                                              self.user_io, self.hook_manager)
            return output, self.requester
Example #2
0
 def _init(self):
     temp_dir = temp_folder()
     hook_path = os.path.join(temp_dir, "my_hook.py")
     save(os.path.join(temp_dir, "my_hook.py"), my_hook)
     output = TestBufferConanOutput()
     hook_manager = HookManager(temp_dir, ["my_hook"], output)
     return hook_manager, output, hook_path
Example #3
0
    def init_dynamic_vars(self, user_io=None):
        # Migration system
        output = TestBufferConanOutput()
        self.user_io = user_io or MockedUserIO(self.users, out=output)
        self.cache = ClientCache(self.base_folder, output)

        # Migration system
        migrator = ClientMigrator(self.cache, Version(__version__), output)
        migrator.migrate()

        http_requester = self._get_http_requester()
        config = self.cache.config
        if self.conan_runner:
            self.runner = self.conan_runner
        else:
            self.runner = ConanRunner(config.print_commands_to_output,
                                      config.generate_run_log_file,
                                      config.log_run_to_output,
                                      output=output)

        self.requester = ConanRequester(config, http_requester)
        self.hook_manager = HookManager(self.cache.hooks_path, config.hooks,
                                        self.user_io.out)

        put_headers = self.cache.read_put_headers()
        self.rest_api_client = RestApiClient(
            self.user_io.out,
            self.requester,
            revisions_enabled=config.revisions_enabled,
            put_headers=put_headers)
        # To store user and token
        self.localdb = LocalDB.create(self.cache.localdb)
        # Wraps RestApiClient to add authentication support (same interface)
        auth_manager = ConanApiAuthManager(self.rest_api_client, self.user_io,
                                           self.localdb)
        # Handle remote connections
        self.remote_manager = RemoteManager(self.cache, auth_manager,
                                            self.user_io.out,
                                            self.hook_manager)
        return output, self.requester