def test_parent_image_inspect(insecure, parents_pulled, tmpdir, source_params): provided_image = "test-build:test_tag" if MOCK: mock_docker(provided_image_repotags=provided_image) source_params.update({'tmpdir': str(tmpdir)}) s = get_source_instance_for(source_params) b = InsideBuilder(s, provided_image) b.tasker.build_method = default_build_method b.parents_pulled = parents_pulled provided_imagename = ImageName.parse(provided_image) registry_name = "registry.example.com" provided_imagename.registry = registry_name b.pull_registries = { registry_name: { 'insecure': insecure, 'dockercfg_path': str(tmpdir) } } if not parents_pulled: (flexmock(atomic_reactor.util).should_receive( 'get_inspect_for_image').with_args( provided_imagename, provided_imagename.registry, insecure, str(tmpdir)).and_return({'Id': 123})) built_inspect = b.parent_image_inspect(provided_imagename) assert built_inspect is not None assert built_inspect["Id"] is not None
def test_parent_image_inspect(parents_pulled, tmpdir, source_params): provided_image = "test-build:test_tag" if MOCK: mock_docker(provided_image_repotags=provided_image) source_params.update({'tmpdir': str(tmpdir)}) s = get_source_instance_for(source_params) b = InsideBuilder(s, provided_image) b.parents_pulled = parents_pulled if not parents_pulled: (flexmock(atomic_reactor.util) .should_receive('get_inspect_for_image') .and_return({'Id': 123})) built_inspect = b.parent_image_inspect(provided_image) assert built_inspect is not None assert built_inspect["Id"] is not None
def test_base_image_inspect(tmpdir, source_params, parents_pulled, base_exist): if MOCK: mock_docker() source_params.update({'tmpdir': str(tmpdir)}) s = get_source_instance_for(source_params) b = InsideBuilder(s, '') b.parents_pulled = parents_pulled if b.base_from_scratch: base_exist = True if base_exist: if b.base_from_scratch: built_inspect = b.base_image_inspect assert built_inspect == {} else: if not parents_pulled: (flexmock(atomic_reactor.util) .should_receive('get_inspect_for_image') .and_return({'Id': 123})) built_inspect = b.base_image_inspect assert built_inspect is not None assert built_inspect["Id"] is not None else: if parents_pulled or b.custom_base_image: response = flexmock(content="not found", status_code=404) (flexmock(docker.APIClient) .should_receive('inspect_image') .and_raise(docker.errors.NotFound, "xyz", response)) with pytest.raises(KeyError): b.base_image_inspect else: (flexmock(atomic_reactor.util) .should_receive('get_inspect_for_image') .and_raise(NotImplementedError)) with pytest.raises(NotImplementedError): b.base_image_inspect
def test_base_image_inspect(tmpdir, source_params, parents_pulled, insecure, base_exist): if MOCK: mock_docker() source_params.update({'tmpdir': str(tmpdir)}) s = get_source_instance_for(source_params) b = InsideBuilder(s, '') b.tasker.build_method = default_build_method b.parents_pulled = parents_pulled if b.dockerfile_images.base_from_scratch: base_exist = True registry_name = "registry.example.com" original_parents = b.dockerfile_images.original_parents new_parents = [] for parent in original_parents: if parent == 'scratch': new_parents.append(parent) else: mod_parent = ImageName.parse(parent) mod_parent.registry = registry_name new_parents.append(mod_parent.to_str()) b.dockerfile_images = DockerfileImages(new_parents) b.pull_registries = { registry_name: { 'insecure': insecure, 'dockercfg_path': str(tmpdir) } } if base_exist: if b.dockerfile_images.base_from_scratch: built_inspect = b.base_image_inspect assert built_inspect == {} else: if not parents_pulled: (flexmock(atomic_reactor.util).should_receive( 'get_inspect_for_image').with_args( b.dockerfile_images.base_image, b.dockerfile_images.base_image.registry, insecure, str(tmpdir)).and_return({'Id': 123})) built_inspect = b.base_image_inspect assert built_inspect is not None assert built_inspect["Id"] is not None else: if parents_pulled or b.dockerfile_images.custom_base_image: response = flexmock(content="not found", status_code=404) (flexmock( docker.APIClient).should_receive('inspect_image').and_raise( docker.errors.NotFound, "xyz", response)) with pytest.raises(KeyError): b.base_image_inspect # pylint: disable=pointless-statement; is a property else: (flexmock(atomic_reactor.util).should_receive( 'get_inspect_for_image').and_raise(NotImplementedError)) with pytest.raises(NotImplementedError): b.base_image_inspect # pylint: disable=pointless-statement; is a property