2017-03-08 14:44:31 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from buildman.component.buildcomponent import BuildComponent
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('input,expected_path,expected_file', [
|
|
|
|
("", "/", "Dockerfile"),
|
|
|
|
("/", "/", "Dockerfile"),
|
|
|
|
("/Dockerfile", "/", "Dockerfile"),
|
|
|
|
("/server.Dockerfile", "/", "server.Dockerfile"),
|
|
|
|
("/somepath", "/somepath", "Dockerfile"),
|
|
|
|
("/somepath/", "/somepath", "Dockerfile"),
|
|
|
|
("/somepath/Dockerfile", "/somepath", "Dockerfile"),
|
|
|
|
("/somepath/server.Dockerfile", "/somepath", "server.Dockerfile"),
|
|
|
|
("/somepath/some_other_path", "/somepath/some_other_path", "Dockerfile"),
|
|
|
|
("/somepath/some_other_path/", "/somepath/some_other_path", "Dockerfile"),
|
|
|
|
("/somepath/some_other_path/Dockerfile", "/somepath/some_other_path", "Dockerfile"),
|
|
|
|
("/somepath/some_other_path/server.Dockerfile", "/somepath/some_other_path", "server.Dockerfile"),
|
|
|
|
])
|
|
|
|
def test_path_is_dockerfile(input, expected_path, expected_file):
|
|
|
|
actual_path, actual_file = BuildComponent.name_and_path(input)
|
|
|
|
assert actual_path == expected_path
|
|
|
|
assert actual_file == expected_file
|
2017-03-29 16:54:15 +00:00
|
|
|
|
|
|
|
@pytest.mark.parametrize('build_config,context,dockerfile_path', [
|
|
|
|
({}, "", ""),
|
|
|
|
({'build_subdir': "/builddir/Dockerfile"}, "", "/builddir/Dockerfile"),
|
|
|
|
({'context': "/builddir"}, "/builddir", ""),
|
|
|
|
({'context': "/builddir", 'build_subdir': "/builddir/Dockerfile"}, "/builddir", "Dockerfile"),
|
|
|
|
({'context': "/some_other_dir/Dockerfile", 'build_subdir': "/builddir/Dockerfile"}, "/builddir", "Dockerfile"),
|
|
|
|
])
|
|
|
|
def test_extract_dockerfile_args(build_config, context, dockerfile_path):
|
|
|
|
actual_context, actual_dockerfile_path = BuildComponent.extract_dockerfile_args(build_config)
|
|
|
|
assert context == actual_context
|
|
|
|
assert dockerfile_path == actual_dockerfile_path
|