コード例 #1
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_adjacent_capture_sequences():
    grepper = Grepper("the %{0S1} %{1} ran away")
    match = grepper.match_line("the big brown fox ran away")
    assert bool(match)
    assert match.token(0) == "big brown"
    assert match.token(1) == "fox"

    assert match.re == re.compile(
        "^the\\ (?P<token_0>(?:\\S*\\s\\S*){1}\\S*)\\ (?P<token_1>.*?)\\ ran\\ away$"
    )
    assert match.pattern == "the %{0S1} %{1} ran away"
コード例 #2
0
def grep(pattern: str, flags: str, files: List[str]) -> str:
    grepper = Grepper(pattern, flags, files)
    return grepper.run()
コード例 #3
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_matches_multiple_patterns(line, expected):
    grepper = Grepper("foo", "baz")
    assert bool(grepper.match_line(line)) == expected
コード例 #4
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_raises_on_duplicate_tokens():
    with pytest.raises(ValueError):
        Grepper("foo %{0} is a %{0}")
コード例 #5
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_patterns(pattern, test_string, expected):
    grepper = Grepper(pattern)
    assert bool(grepper.match_line(test_string)) == expected
コード例 #6
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_raises_when_no_patterns_provided():
    with pytest.raises(ValueError):
        Grepper()
コード例 #7
0
ファイル: test_grepper.py プロジェクト: flypd/Grepper
def test_map_token_capture_to_re(token_capture, regex):
    mapped = Grepper.map_pattern_to_re(re.escape(token_capture))
    assert mapped == regex