def mock_runner_with_status_response(self, response): runner = BuildRunner('url', {}, 'mellon') start_response = Response() start_response.json = MagicMock(return_value={"build_id": "1"}) runner._network.post = MagicMock(return_value=start_response) status_response = Response() status_response.json = MagicMock(return_value=response) runner._network.get = MagicMock(return_value=status_response) runner._download_and_extract_results = MagicMock() return runner
def mock_runner_with_status_response(self, response): runner = BuildRunner('url', {}, 'mellon') start_response = Response() start_response.json = MagicMock(return_value={"build_id": "1"}) runner._network.post = MagicMock(return_value=start_response) status_response = Response() status_response.json = MagicMock(return_value=response) runner._network.get = MagicMock(return_value=status_response) runner._download_and_extract_results = MagicMock() return runner
def run(self, log_level, master_url, remote_file=None, build_type=None, **request_params): """ Execute a build and wait for it to complete. :param log_level: the log level at which to do application logging (or None for default log level) :type log_level: str | None :param master_url: the url (specified by the user) of the master to which we should send the build :type master_url: str | None :param remote_file: a list of remote files where each element contains the output file name and the resource URL :type remote_file: list[list[str]] | None :param build_type: the build type of the request to be sent (e.g., "git", "directory"). If not specified will default to the "directory" project type. :type build_type: str | None :param request_params: key-value pairs to be provided as build parameters in the build request :type request_params: dict """ log_level = log_level or Configuration['log_level'] log.configure_logging(log_level=log_level, simplified_console_logs=True) request_params['type'] = build_type or request_params.get( 'type') or 'directory' if remote_file: request_params['remote_files'] = { name: url for name, url in remote_file } operational_master_url = master_url or '{}:{}'.format( Configuration['hostname'], Configuration['port']) # If running a single master, single slave--both on localhost--we need to launch services locally. if master_url is None and Network.are_hosts_same(Configuration['master_hostname'], 'localhost') \ and len(Configuration['slaves']) == 1 \ and Network.are_hosts_same(Configuration['slaves'][0], 'localhost'): self._start_local_services_if_needed(operational_master_url) if request_params['type'] == 'directory': request_params['project_directory'] = request_params.get( 'project_directory') or os.getcwd() runner = BuildRunner(master_url=operational_master_url, request_params=request_params, secret=Secret.get()) if not runner.run(): sys.exit(1)
def _create_build_runner_instance(self, response): mock_get_logger = self.patch('app.client.build_runner.get_logger') logger = mock_get_logger.return_value build_id = '1' runner = BuildRunner('url', {}, 'mellon') start_response = Response() start_response.json = MagicMock(return_value={'build_id': build_id}) runner._network.post = MagicMock(return_value=start_response) status_response = Response() status_response.json = MagicMock(return_value=response) runner._network.get = MagicMock(return_value=status_response) runner._download_and_extract_results = MagicMock() return runner, logger, build_id
def _create_build_runner_instance(self, response): mock_get_logger = self.patch('app.client.build_runner.get_logger') logger = mock_get_logger.return_value build_id = '1' runner = BuildRunner('url', {}, 'mellon') start_response = Response() start_response.json = MagicMock(return_value={'build_id': build_id}) runner._network.post = MagicMock(return_value=start_response) status_response = Response() status_response.json = MagicMock(return_value=response) runner._network.get = MagicMock(return_value=status_response) runner._download_and_extract_results = MagicMock() return runner, logger, build_id
def run(self, log_level, master_url, remote_file=None, build_type=None, **request_params): """ Execute a build and wait for it to complete. :param log_level: the log level at which to do application logging (or None for default log level) :type log_level: str | None :param master_url: the url (specified by the user) of the master to which we should send the build :type master_url: str | None :param remote_file: a list of remote files where each element contains the output file name and the resource URL :type remote_file: list[list[str]] | None :param build_type: the build type of the request to be sent (e.g., "git", "directory"). If not specified will default to the "directory" project type. :type build_type: str | None :param request_params: key-value pairs to be provided as build parameters in the build request :type request_params: dict """ log_level = log_level or Configuration['log_level'] log.configure_logging(log_level=log_level, simplified_console_logs=True) request_params['type'] = build_type or request_params.get('type') or 'directory' if remote_file: request_params['remote_files'] = {name: url for name, url in remote_file} operational_master_url = master_url or '{}:{}'.format(Configuration['hostname'], Configuration['port']) # If running a single master, single slave--both on localhost--we need to launch services locally. if master_url is None and Network.are_hosts_same(Configuration['master_hostname'], 'localhost') \ and len(Configuration['slaves']) == 1 \ and Network.are_hosts_same(Configuration['slaves'][0], 'localhost'): self._start_local_services_if_needed(operational_master_url) if request_params['type'] == 'directory': request_params['project_directory'] = request_params.get('project_directory') or os.getcwd() runner = BuildRunner(master_url=operational_master_url, request_params=request_params, secret=Secret.get()) if not runner.run(): sys.exit(1)