def test_compose_buildkit_inline_cache(arrow_compose_path): compose = DockerCompose(arrow_compose_path) expected_calls = [ "build --build-arg BUILDKIT_INLINE_CACHE=1 conda-cpp", ] with assert_compose_calls(compose, expected_calls): compose.build('conda-cpp')
def test_forwarding_env_variables(arrow_compose_path): expected_calls = [ "pull --ignore-pull-failures conda-cpp", "build conda-cpp", ] expected_env = PartialEnv(MY_CUSTOM_VAR_A='a', MY_CUSTOM_VAR_B='b') with override_env({'MY_CUSTOM_VAR_A': 'a', 'MY_CUSTOM_VAR_B': 'b'}): compose = DockerCompose(arrow_compose_path) with assert_compose_calls(compose, expected_calls, env=expected_env): assert os.environ['MY_CUSTOM_VAR_A'] == 'a' assert os.environ['MY_CUSTOM_VAR_B'] == 'b' compose.build('conda-cpp')
def test_compose_build(arrow_compose_path): compose = DockerCompose(arrow_compose_path) expected_calls = [ "pull --ignore-pull-failures conda-cpp", "build conda-cpp", ] with assert_compose_calls(compose, expected_calls): compose.build('conda-cpp') expected_calls = ["build --no-cache conda-cpp"] with assert_compose_calls(compose, expected_calls): compose.build('conda-cpp', cache=False) expected_calls = [ "pull --ignore-pull-failures conda-cpp", "build conda-cpp", "pull --ignore-pull-failures conda-python", "build conda-python", "pull --ignore-pull-failures conda-python-pandas", "build conda-python-pandas" ] with assert_compose_calls(compose, expected_calls): compose.build('conda-python-pandas') expected_calls = [ "build --no-cache conda-cpp", "build --no-cache conda-python", "build --no-cache conda-python-pandas", ] with assert_compose_calls(compose, expected_calls): compose.build('conda-python-pandas', cache=False) expected_calls = [ "pull --ignore-pull-failures conda-cpp", "build conda-cpp", "pull --ignore-pull-failures conda-python", "build conda-python", "build --no-cache conda-python-pandas", ] with assert_compose_calls(compose, expected_calls): compose.build('conda-python-pandas', cache=True, cache_leaf=False)
def test_compose_build_params(arrow_compose_path): expected_calls = [ "pull --ignore-pull-failures ubuntu-cpp", "build ubuntu-cpp", ] compose = DockerCompose(arrow_compose_path, params=dict(UBUNTU='18.04')) expected_env = PartialEnv(UBUNTU="18.04") with assert_compose_calls(compose, expected_calls, env=expected_env): compose.build('ubuntu-cpp') compose = DockerCompose(arrow_compose_path, params=dict(UBUNTU='16.04')) expected_env = PartialEnv(UBUNTU="16.04") with assert_compose_calls(compose, expected_calls, env=expected_env): compose.build('ubuntu-cpp') expected_calls = [ "build --no-cache conda-cpp", "build --no-cache conda-python", "build --no-cache conda-python-pandas", ] compose = DockerCompose(arrow_compose_path, params=dict(UBUNTU='18.04')) expected_env = PartialEnv(PYTHON='3.6', PANDAS='latest') with assert_compose_calls(compose, expected_calls, env=expected_env): compose.build('conda-python-pandas', cache=False) compose = DockerCompose(arrow_compose_path, params=dict(PANDAS='0.25.3')) expected_env = PartialEnv(PYTHON='3.6', PANDAS='0.25.3') with assert_compose_calls(compose, expected_calls, env=expected_env): compose.build('conda-python-pandas', cache=False) compose = DockerCompose(arrow_compose_path, params=dict(PYTHON='3.8', PANDAS='master')) expected_env = PartialEnv(PYTHON='3.8', PANDAS='master') with assert_compose_calls(compose, expected_calls, env=expected_env): compose.build('conda-python-pandas', cache=False)