コード例 #1
0
ファイル: jinja_test.py プロジェクト: sti0/sqlfluff
def test__templater_jinja_slice_file(raw_file, override_context, result,
                                     caplog):
    """Test slice_file."""
    templater = JinjaTemplater(override_context=override_context)
    env, live_context, make_template = templater.template_builder(
        config=FluffConfig.from_path(
            "test/fixtures/templater/jinja_slice_template_macros"))

    templated_file = make_template(raw_file).render()
    with caplog.at_level(logging.DEBUG, logger="sqlfluff.templater"):
        _, resp, _ = templater.slice_file(raw_file,
                                          templated_file,
                                          make_template=make_template)
    # Check contiguous on the TEMPLATED VERSION
    print(resp)
    prev_slice = None
    for elem in resp:
        print(elem)
        if prev_slice:
            assert elem[2].start == prev_slice.stop
        prev_slice = elem[2]
    # Check that all literal segments have a raw slice
    for elem in resp:
        if elem[0] == "literal":
            assert elem[1] is not None
    # check result
    actual = [(
        templated_file_slice.slice_type,
        templated_file_slice.source_slice,
        templated_file_slice.templated_slice,
    ) for templated_file_slice in resp]
    assert actual == result
コード例 #2
0
ファイル: jinja_test.py プロジェクト: sti0/sqlfluff
def test__templater_jinja_slice_template(test, result):
    """Test _slice_template."""
    templater = JinjaTemplater()
    env, live_context, make_template = templater.template_builder()
    tracer = JinjaTracer(test, env, make_template)
    resp = list(tracer._slice_template())
    # check contiguous (unless there's a comment in it)
    if "{#" not in test:
        assert "".join(elem.raw for elem in resp) == test
        # check indices
        idx = 0
        for raw_slice in resp:
            assert raw_slice.source_idx == idx
            idx += len(raw_slice.raw)
    # Check total result
    assert [(raw_slice.raw, raw_slice.slice_type, raw_slice.source_idx)
            for raw_slice in resp] == result