def test_match_twin_elements_bound_end(self): s = Section(['test', "a*"]) s.bound_end = True path = [] matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/bin".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/andrew".split("/") matches = [index for index in s.match_iter(path, 0)] assert [2] == matches path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 0)] assert [7] == matches path = "not/util/bin/test/ast/not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches
def test_match_twin_elements_no_bindings(self): s = Section(['test', "a*"]) path = [] matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/bin".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/andrew".split("/") matches = [index for index in s.match_iter(path, 0)] assert [2] == matches path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 0)] assert [2, 5, 7] == matches path = "not/util/bin/test/ast/not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [5] == matches
def test_basic(self): s = Section(['test']) assert s.str == "test" assert s.elements[0] == ConstantMatcher("test") s = Section(["test", "bin"]) assert s.str == "test/bin" assert s.elements[0] == ConstantMatcher("test") assert s.elements[1] == ConstantMatcher("bin") s = Section(["????", "test", "bin"]) assert s.str == "????/test/bin" assert s.elements[0] == FNMatcher("????") assert s.elements[1] == ConstantMatcher("test") assert s.elements[2] == ConstantMatcher("bin")
def test_single_match_not_beginning(self): s = Section(['test']) path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 2)] assert [4, 6] == matches matches = [index for index in s.match_iter(path, 3)] assert [4, 6] == matches matches = [index for index in s.match_iter(path, 4)] assert [6] == matches matches = [index for index in s.match_iter(path, 5)] assert [6] == matches matches = [index for index in s.match_iter(path, 6)] assert [] == matches matches = [index for index in s.match_iter(path, 7)] assert [] == matches matches = [index for index in s.match_iter(path, 8)] assert [] == matches
def test_compilation_bound_start(self): p = Pattern.create("/*.py") assert p.bound_start is True assert p.bound_end is True assert str(p.file_pattern) == "*.py" assert p.sections == [] p = Pattern.create("/test/*.py") assert p.bound_start is True assert p.bound_end is True assert str(p.file_pattern) == "*.py" assert p.sections == [Section(["test"])] p = Pattern.create("/test/dir/*") assert p.bound_start is True assert p.bound_end is True assert p.file_pattern == "*" assert p.sections == [Section(["test", "dir"])] p = Pattern.create("/start/**/test/*.py") assert p.bound_start is True assert p.bound_end is True assert str(p.file_pattern) == "*.py" assert p.sections == [Section(["start"]), Section(["test"])] p = Pattern.create("/start/**/test/**/*.py") assert p.bound_start is True assert p.bound_end is False assert str(p.file_pattern) == "*.py" assert p.sections == [Section(["start"]), Section(["test"])]
def test_match_bound_start(self): s = Section(['test', "a*"]) s.bound_start = True path = "test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 0)] assert [2] == matches path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 1)] assert [] == matches
def test_match_single_bound_end(self): s = Section(['test']) s.bound_end = True path = [] matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [1] == matches path = "not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/util/bin/test/last/test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [6] == matches path = "not/util/bin/test/last/not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches
def test_match_single_no_bindings(self): s = Section(['test']) path = [] matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [1] == matches path = "not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [] == matches path = "test/util/bin/test/last/test".split("/") matches = [index for index in s.match_iter(path, 0)] assert [1, 4, 6] == matches path = "not/util/bin/test/last/not".split("/") matches = [index for index in s.match_iter(path, 0)] assert [4] == matches
def test_multi_match_not_beginning(self): s = Section(['test', 'a*']) path = "test".split("/") matches = [index for index in s.match_iter(path, 1)] assert [] == matches path = "test/andrew".split("/") matches = [index for index in s.match_iter(path, 1)] assert [] == matches path = "test/andrew/bin/test/ast/test/another".split("/") matches = [index for index in s.match_iter(path, 2)] assert [5, 7] == matches matches = [index for index in s.match_iter(path, 3)] assert [5, 7] == matches matches = [index for index in s.match_iter(path, 4)] assert [7] == matches matches = [index for index in s.match_iter(path, 5)] assert [7] == matches matches = [index for index in s.match_iter(path, 6)] assert [] == matches matches = [index for index in s.match_iter(path, 7)] assert [] == matches matches = [index for index in s.match_iter(path, 8)] assert [] == matches