Ejemplo n.º 1
0
def test_docker_builder__delete(docker_builder: DockerBuilder, docker_env,
                                helloworld_image, request):
    docker_env: DockerEnv = request.getfixturevalue(docker_env)
    image = helloworld_image(docker_env).params

    assert docker_builder.image_exists(image, docker_env)
    docker_builder.delete_image(image, docker_env)
    assert not docker_builder.image_exists(image, docker_env)
Ejemplo n.º 2
0
def test_docker_builder__build__ok(docker_builder: DockerBuilder, docker_env,
                                   request):
    docker_env: DockerEnv = request.getfixturevalue(docker_env)
    image = DockerImage(IMAGE_NAME, registry=docker_env.registry)
    docker_builder.build_image(BuildableMock(),
                               image,
                               docker_env,
                               force_overwrite=True)
    assert image.image_id is not None
    with docker_env.daemon.client() as c:
        assert image.exists(c)

    with get_image_output(image, docker_env) as output:
        assert output == SECRET
Ejemplo n.º 3
0
def container_name():
    name = "{}-{}".format(CONTAINER_NAME, int(time.time() * 1000))
    yield name

    if not CLEAR:
        return

    from ebonite.ext.docker import DockerRunner, DockerBuilder, DockerContainer, DockerImage, DockerEnv
    DockerRunner().remove_instance(DockerContainer(name), DockerEnv(), force=True)
    DockerBuilder().delete_image(DockerImage(name), DockerEnv())
Ejemplo n.º 4
0
def docker_builder():
    builder = DockerBuilder()
    build = builder.build_image
    images = []

    def reg_build(buildable,
                  image: DockerImage,
                  environment: DockerEnv,
                  force_overwrite=False,
                  **kwargs):
        images.append((image.name, environment))
        return build(buildable, image, environment, force_overwrite, **kwargs)

    builder.build_image = reg_build

    try:
        yield builder
    finally:
        for image_name, env in images:
            with env.daemon.client() as c:
                try:
                    c.images.remove(image_name, force=True)
                except docker.errors.ImageNotFound:
                    pass
Ejemplo n.º 5
0
def test_docker_builder__create__ok(docker_builder: DockerBuilder,
                                    dockerenv_local):
    args = {'name': 'a', 'tag': 'b', 'repository': 'c'}
    image = docker_builder.create_image(environment=dockerenv_local, **args)
    assert isinstance(image, DockerImage)
    assert image == DockerImage(**args)
Ejemplo n.º 6
0
def test_docker_builder__delete__extra_args(docker_builder: DockerBuilder,
                                            dockerenv_local):
    with pytest.raises(TypeError):
        docker_builder.delete_image(DockerImage(IMAGE_NAME),
                                    dockerenv_local,
                                    kekek='a')
Ejemplo n.º 7
0
def test_docker_builder__exists__not(docker_builder: DockerBuilder, docker_env,
                                     request):
    docker_env: DockerEnv = request.getfixturevalue(docker_env)
    image = DockerImage('this__image__is__impossible', 'tag__also__impossible')

    assert not docker_builder.image_exists(image, docker_env)
Ejemplo n.º 8
0
def test_docker_builder__exists__ok(docker_builder: DockerBuilder, docker_env,
                                    helloworld_image, request):
    docker_env: DockerEnv = request.getfixturevalue(docker_env)
    image = helloworld_image(docker_env)

    assert docker_builder.image_exists(image.params, docker_env)
Ejemplo n.º 9
0
def test_docker_builder__build__extra_args(docker_builder: DockerBuilder):
    with pytest.raises(TypeError):
        docker_builder.build_image(BuildableMock(),
                                   DockerImage(IMAGE_NAME),
                                   kekek='a')
Ejemplo n.º 10
0
def test_docker_builder__create__extra_arg(docker_builder: DockerBuilder,
                                           dockerenv_local):
    with pytest.raises(TypeError):
        docker_builder.create_image('a', dockerenv_local, kek='b')