summaryrefslogtreecommitdiff
path: root/_test/lib/test_mark.py
blob: 0ff278976ed3e5320ff3620bb19f7be40cf939ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from __future__ import absolute_import
from __future__ import print_function

import ruamel.yaml as yaml
from ruamel.yaml.compat import text_type, PY3


def test_marks(marks_filename, verbose=False):
    with open(marks_filename, 'r' if PY3 else 'rb') as fp0:
        inputs = fp0.read().split('---\n')[1:]
    for input in inputs:
        index = 0
        line = 0
        column = 0
        while input[index] != '*':
            if input[index] == '\n':
                line += 1
                column = 0
            else:
                column += 1
            index += 1
        mark = yaml.Mark(marks_filename, index, line, column, text_type(input), index)
        snippet = mark.get_snippet(indent=2, max_length=79)
        if verbose:
            print(snippet)
        assert isinstance(snippet, str), type(snippet)
        assert snippet.count('\n') == 1, snippet.count('\n')
        data, pointer = snippet.split('\n')
        assert len(data) < 82, len(data)
        assert data[len(pointer) - 1] == '*', data[len(pointer) - 1]


test_marks.unittest = ['.marks']

if __name__ == '__main__':
    import test_appliance

    test_appliance.run(globals())