import pytest from buildtrigger.basehandler import BuildTriggerHandler @pytest.mark.parametrize('input,output', [ ("Dockerfile", True), ("server.Dockerfile", True), (u"Dockerfile", True), (u"server.Dockerfile", True), ("bad file name", False), (u"bad file name", False), ]) def test_path_is_dockerfile(input, output): assert BuildTriggerHandler.filename_is_dockerfile(input) == output @pytest.mark.parametrize('input,output', [ ("", {}), ("/a", {"/a": ["/"]}), ("a", {"/a": ["/"]}), ("/b/a", {"/b/a": ["/b", "/"]}), ("b/a", {"/b/a": ["/b", "/"]}), ("/c/b/a", {"/c/b/a": ["/c/b", "/c", "/"]}), ("/a//b//c", {"/a/b/c": ["/", "/a", "/a/b"]}), ("/a", {"/a": ["/"]}), ]) def test_subdir_path_map_no_previous(input, output): actual_mapping = BuildTriggerHandler.get_parent_directory_mappings(input) for key in actual_mapping: value = actual_mapping[key] actual_mapping[key] = value.sort() for key in output: value = output[key] output[key] = value.sort() assert actual_mapping == output @pytest.mark.parametrize('new_path,original_dictionary,output', [ ("/a", {}, {"/a": ["/"]}), ("b", {"/a": ["some_path", "another_path"]}, {"/a": ["some_path", "another_path"], "/b": ["/"]}), ("/a/b/c/d", {"/e": ["some_path", "another_path"]}, {"/e": ["some_path", "another_path"], "/a/b/c/d": ["/", "/a", "/a/b", "/a/b/c"]}), ]) def test_subdir_path_map(new_path, original_dictionary, output): actual_mapping = BuildTriggerHandler.get_parent_directory_mappings(new_path, original_dictionary) for key in actual_mapping: value = actual_mapping[key] actual_mapping[key] = value.sort() for key in output: value = output[key] output[key] = value.sort() assert actual_mapping == output