File: test_render.py

package info (click to toggle)
python-redbaron 0.9.2-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 772 kB
  • sloc: python: 6,650; makefile: 145; sh: 28
file content (80 lines) | stat: -rw-r--r-- 2,550 bytes parent folder | download
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/python
# -*- coding:Utf-8 -*-

""" Tests the rendering feature """

from redbaron import RedBaron


def test_rendering_iter():
    red = RedBaron("a + 2")
    assert_red = RedBaron("assert a == 5")
    assert list(red._generate_nodes_in_rendering_order()) == \
           [red[0],
            red.name,
            red[0].first_formatting[0],
            red[0],
            red[0].second_formatting[0],
            red.int]
    assert list(red[0]._generate_nodes_in_rendering_order()) == \
           [red[0],
            red.name,
            red[0].first_formatting[0],
            red[0],
            red[0].second_formatting[0],
            red.int]

    assert list(assert_red._generate_nodes_in_rendering_order()) == \
           [assert_red[0],
            assert_red[0].first_formatting[0],  # SpaceNode in AssertNode
            assert_red[0].value,  # ComparisonNode
            assert_red.name,
            assert_red[0].value.first_formatting[0],  # SpaceNode in ComparisonNode
            assert_red[0].value.value,  # ComparisonOperatorNode
            assert_red[0].value.second_formatting[0],  # SpaceNode in ComparisonNode
            assert_red.int]

    assert list(assert_red[0]._generate_nodes_in_rendering_order()) == \
           [assert_red[0],
            assert_red[0].first_formatting[0],  # SpaceNode in AssertNode
            assert_red[0].value,  # ComparisonNode
            assert_red.name,
            assert_red[0].value.first_formatting[0],  # SpaceNode in ComparisonNode
            assert_red[0].value.value,  # ComparisonOperatorNode
            assert_red[0].value.second_formatting[0],  # SpaceNode in ComparisonNode
            assert_red.int]


def test_next_rendered():
    red = RedBaron("a + 2")
    f = red.name

    assert f.next_rendered is red[0].first_formatting[0]
    assert f.next_rendered.next_rendered is red[0]
    assert f.next_rendered.next_rendered.next_rendered is red[0].second_formatting[0]
    assert f.next_rendered.next_rendered.next_rendered.next_rendered is red.int


def test_previous_rendered():
    red = RedBaron("a + 2")
    f = red.int

    assert f.previous_rendered is red[0].second_formatting[0]
    assert f.previous_rendered.previous_rendered is red[0]
    assert red[0].first_formatting[0].previous_rendered is red.name


test_indent_code = """
def a():
    # plop
    1 + 2
    if caramba:
        plop
    pouf

"""


def test_next_rendered_trapped():
    red = RedBaron(test_indent_code)
    assert red("endl")[5].next_rendered is red.find("name", "pouf")