def test_no_build_image(): with NamedTemporaryFile(mode='w+') as f: f.write(""" [default] build_host=localhost """) f.flush() f.seek(0) os_conf = Configuration(conf_file=f.name, conf_section="default") assert os_conf.get_build_image() is None
def test_build_image(self): build_image = 'registry.example.com/buildroot:2.0' with NamedTemporaryFile(mode='wt') as fp: fp.write(""" [general] build_json_dir = {build_json_dir} [default] openshift_url = / sources_command = /bin/true vendor = Example, Inc registry_uri = registry.example.com build_host = localhost authoritative_registry = localhost distribution_scope = private build_type = prod build_image = {build_image} """.format(build_json_dir='inputs', build_image=build_image)) fp.flush() config = Configuration(fp.name) osbs = OSBS(config, config) assert config.get_build_image() == build_image class MockParser(object): labels = {'Name': 'fedora23/something'} baseimage = 'fedora23/python' (flexmock(utils) .should_receive('get_df_parser') .with_args(TEST_GIT_URI, TEST_GIT_REF, git_branch=TEST_GIT_BRANCH) .and_return(MockParser())) # Return the request as the response so we can check it def request_as_response(request): request.json = request.render() return request flexmock(OSBS, _create_build_config_and_build=request_as_response) req = osbs.create_prod_build(TEST_GIT_URI, TEST_GIT_REF, TEST_GIT_BRANCH, TEST_USER, TEST_COMPONENT, TEST_TARGET, TEST_ARCH) img = req.json['spec']['strategy']['customStrategy']['from']['name'] assert img == build_image
def test_build_image(self): build_image = 'registry.example.com/buildroot:2.0' with NamedTemporaryFile(mode='wt') as fp: fp.write(""" [general] build_json_dir = {build_json_dir} [default] openshift_url = / sources_command = /bin/true vendor = Example, Inc registry_uri = registry.example.com build_host = localhost authoritative_registry = localhost distribution_scope = private build_type = prod build_image = {build_image} """.format(build_json_dir='inputs', build_image=build_image)) fp.flush() config = Configuration(fp.name) osbs = OSBS(config, config) assert config.get_build_image() == build_image class MockParser(object): labels = {'Name': 'fedora23/something'} baseimage = 'fedora23/python' (flexmock(utils).should_receive('get_df_parser').with_args( TEST_GIT_URI, TEST_GIT_REF, git_branch=TEST_GIT_BRANCH).and_return(MockParser())) # Return the request as the response so we can check it def request_as_response(request): request.json = request.render() return request flexmock(OSBS, _create_build_config_and_build=request_as_response) req = osbs.create_prod_build(TEST_GIT_URI, TEST_GIT_REF, TEST_GIT_BRANCH, TEST_USER, TEST_COMPONENT, TEST_TARGET, TEST_ARCH) img = req.json['spec']['strategy']['customStrategy']['from']['name'] assert img == build_image
def test_render_orchestrate_build(self, tmpdir, platforms, build_from, build_image, build_imagestream, worker_build_image, additional_kwargs, koji_parent_build, valid): phase = 'buildstep_plugins' plugin = 'orchestrate_build' kwargs = { 'git_uri': TEST_GIT_URI, 'git_ref': TEST_GIT_REF, 'git_branch': TEST_GIT_BRANCH, 'user': "******", 'component': TEST_COMPONENT, 'base_image': 'fedora:latest', 'name_label': 'fedora/resultingimage', 'platforms': platforms, 'build_type': BUILD_TYPE_ORCHESTRATOR, 'reactor_config_map': 'reactor-config-map', 'reactor_config_override': 'reactor-config-override', } if build_image: kwargs['build_image'] = build_image if build_imagestream: kwargs['build_imagestream'] = build_imagestream if build_from: kwargs['build_from'] = build_from if koji_parent_build: kwargs['koji_parent_build'] = koji_parent_build kwargs.update(additional_kwargs) self.mock_repo_info() user_params = BuildUserParams(INPUTS_PATH) if valid: user_params.set_params(**kwargs) build_json = PluginsConfiguration(user_params).render() else: with pytest.raises(OsbsValidationException): user_params.set_params(**kwargs) build_json = PluginsConfiguration(user_params).render() return plugins = get_plugins_from_build_json(build_json) if platforms is None: platforms = {} assert plugin_value_get(plugins, phase, plugin, 'args', 'platforms') == platforms or {} build_kwargs = plugin_value_get(plugins, phase, plugin, 'args', 'build_kwargs') assert build_kwargs[ 'arrangement_version'] == REACTOR_CONFIG_ARRANGEMENT_VERSION assert build_kwargs.get('koji_parent_build') == koji_parent_build assert build_kwargs.get('reactor_config_map') == 'reactor-config-map' assert build_kwargs.get( 'reactor_config_override') == 'reactor-config-override' worker_config_kwargs = plugin_value_get(plugins, phase, plugin, 'args', 'config_kwargs') worker_config = Configuration(conf_file=None, **worker_config_kwargs) if worker_build_image is KeyError: assert 'build_image' not in worker_config_kwargs assert not worker_config.get_build_image() else: assert worker_config_kwargs['build_image'] == worker_build_image assert worker_config.get_build_image() == worker_build_image if kwargs.get('flatpak', False): assert kwargs.get('flatpak') is True