예제 #1
0
def test_base_image_inspect(parents_pulled, base_exist, tmpdir, source_params):
    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 base_exist:
        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:
            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
예제 #2
0
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