Ejemplo n.º 1
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.º 2
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.º 3
0
    def factory(docker_env: DockerEnv):
        envs.append(docker_env)
        with docker_env.daemon.client() as c:
            image = c.images.pull(
                'hello-world:latest')  # pull hello-world image
            if isinstance(image, list):
                image = image[0]

            docker_image = DockerImage(f'{HELLO_WORLD_NAME}_{len(envs)}',
                                       registry=docker_env.registry)
            image.tag(docker_image.uri
                      )  # tag image as *registry*/ebonite-hello-world
            if isinstance(docker_env.registry, RemoteRegistry):
                c.images.push(docker_image.uri)  # push tag to repository
                c.images.remove(docker_image.uri)  # remove from local registry
        return Image('hello-world', BuildableMock(), 0, docker_image)
Ejemplo n.º 4
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.º 5
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.º 6
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.º 7
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.º 8
0
def test_run_local_fail_inside_container(runner, dockerenv_remote, detach, runner_test_images):
    img = DockerImage(BROKEN_IMAGE_NAME,
                      repository=REPOSITORY_NAME, registry=dockerenv_remote.registry)

    with pytest.raises(DockerRunnerException):
        _check_runner(runner, img, dockerenv_remote, detach=detach, rm=True)
Ejemplo n.º 9
0
def test_run_local_image_name_that_will_never_exist(runner, dockerenv_local):
    img = DockerImage('ebonite_image_name_that_will_never_exist')

    with pytest.raises(HTTPError):
        _check_runner(runner, img, dockerenv_local)
Ejemplo n.º 10
0
def test_run_remote_registry(runner, dockerenv_remote, runner_test_images):
    img = DockerImage(IMAGE_NAME, repository=REPOSITORY_NAME, registry=dockerenv_remote.registry)

    _check_runner(runner, img, dockerenv_remote)
Ejemplo n.º 11
0
def test_run_default_registry(runner, dockerenv_local, runner_test_images):
    img = DockerImage(IMAGE_NAME)
    _check_runner(runner, img, dockerenv_local)