Ejemplo n.º 1
0
def test_value_on_new_line():
    red = node("[1, 2, 3]")
    assert not red.value_on_new_line
    red = node("(1, 2, 3)")
    assert not red.value_on_new_line
    red = node("[\n1, 2, 3]")
    assert red.value_on_new_line
    red = node("(\n1, 2, 3)")
    assert red.value_on_new_line
Ejemplo n.º 2
0
def test_on_new_line():
    red = node("[1, 2,\n3]")
    assert not red[0].on_new_line
    assert not red[1].on_new_line
    assert red[2].on_new_line
    red = node("[1, 2, 3]")
    assert not red[0].on_new_line
    red = node("[\n1, 2, 3]")
    assert red[0].on_new_line
Ejemplo n.º 3
0
def test_assign_on_object_value_fst():
    binop = node("ax + (z * 4)")
    assert binop.first.value == "ax"

    binop.first = {"type": "name", "value": "pouet"}
    assert binop.first.value == "pouet"
    assert binop.first.type == "name"
Ejemplo n.º 4
0
def test_assign_node_list_fst():
    list_node = node("[1, 2, 3]")

    list_node.value = [{"type": "name", "value": "pouet"}]
    assert list_node.value[0].value == "pouet"
    assert list_node.value[0].type == "name"
    assert isinstance(list_node.value, CommaProxyList)
Ejemplo n.º 5
0
def test_binary_operator_minus():
    binop = node("z  -      42")
    assert binop.value == "-"
    assert isinstance(binop.first, NameNode)
    assert binop.first.value == "z"
    assert isinstance(binop.second, NumberNode)
    assert binop.second.value == "42"
Ejemplo n.º 6
0
def test_assign_on_object_value():
    binop = node("ax + (z * 4)")

    binop.first = "pouet"  # will be parsed as a name
    assert binop.first.value == "pouet"
    assert binop.first.type == "name"

    binop.first = "42"  # will be parsed as a int
    assert binop.first.value == "42"
    assert binop.first.type == "number"
Ejemplo n.º 7
0
def test_parent_assign():
    assign_node = node("a = 1 + caramba")
    assert assign_node.target.parent is assign_node
    assert assign_node.target.on_attribute == "target"

    assign_node.target = "plop"
    assert assign_node.target.parent is assign_node
    assert assign_node.target.on_attribute == "target"

    assign_node.target = {"type": "name", "value": "pouet"}
    assert assign_node.target.parent is assign_node
    assert assign_node.target.on_attribute == "target"

    assign_node.target = NameNode({"type": "name", "value": "pouet"})
    assert assign_node.target.parent is assign_node
    assert assign_node.target.on_attribute == "target"
Ejemplo n.º 8
0
def test_assign_node_list_mixed():
    list_node = node("[1, 2, 3]")

    list_node.value = [
        "plop", {
            "type": "comma",
            "first_formatting": [],
            "second_formatting": []
        }, {
            "type": "name",
            "value": "pouet"
        }
    ]
    assert isinstance(list_node.value, CommaProxyList)

    assert list_node.value[0].value == "plop"
    assert list_node.value[0].type == "name"

    assert list_node.value.node_list[1].type == "comma"
    assert list_node.value[1].value == "pouet"
    assert list_node.value[1].type == "name"

    assert list_node.value.node_list[2].value == "pouet"
    assert list_node.value.node_list[2].type == "name"
Ejemplo n.º 9
0
def test_filter():
    red = node("[1, 2, 3]")
    filtered_list = red.value.filter(lambda x: x.value == "2")
    assert isinstance(filtered_list, NodeList)
    assert filtered_list.dumps() == "2"
Ejemplo n.º 10
0
def test_hide():
    red = node("[1, 2, 3]")
    red.hide(red[0])
    assert red.dumps() == "[2, 3]"
Ejemplo n.º 11
0
def test_copy_raise():
    code = "raise NotImplementedError"
    el = node(code).copy()
    assert el.dumps() == code
Ejemplo n.º 12
0
def test_node_previous_neighbors():
    red = node("[1, 2, 3]")
    assert list(red[2].previous_neighbors) == list(reversed(red[:2]))
Ejemplo n.º 13
0
def test_node_previous_intuitive():
    red = node("[1, 2, 3]")
    assert red[1].previous_intuitive == red[0]
Ejemplo n.º 14
0
def test_node_next_intuitive():
    red = node("[1, 2, 3]")
    assert red[0].next_intuitive == red[1]
Ejemplo n.º 15
0
def test_node_displayable_previous():
    node_list = node("[1, 2, 3]")
    node_list.hide(node_list[1])
    assert node_list[2].displayable_previous == node_list[0]
    assert node_list[0].displayable_previous is None
Ejemplo n.º 16
0
def test_node_displayable_next():
    node_list = node("[1, 2, 3]")
    node_list.hide(node_list[1])
    assert node_list[0].displayable_next == node_list[2]
    assert node_list[2].displayable_next is None
Ejemplo n.º 17
0
def test_comment_el():
    code = "def a():\n    pass"
    el = "# comment"
    red = node(code)
    red.append(el)
Ejemplo n.º 18
0
def test_decrease_indentation_space_node():
    code = [SpaceNode({"type": "space", "value": "\n "}), node("# hello")]
    red = NodeList(code)
    red.decrease_indentation("  ")
    assert red.dumps() == "\n# hello"
Ejemplo n.º 19
0
def test_binary_operator_more_complex():
    binop = node("ax + (z * 4)")
    assert binop.first.value == "ax"
Ejemplo n.º 20
0
def test_associated_sep():
    red = node("[1, 2]")
    assert red[0].associated_sep.baron_type == "comma"
    assert red[1].associated_sep is None
Ejemplo n.º 21
0
def test_assign_on_string_value():
    binop = node("ax + (z * 4)")

    binop.first.value = "pouet"
    assert binop.first.value == "pouet"
Ejemplo n.º 22
0
def test_pass():
    red = node("pass")
    assert isinstance(red, PassNode)
Ejemplo n.º 23
0
def test_assign_list_index():
    list_node = node("[1, 2, 3]")
    list_node[0] = "pouet"
    assert list_node[0].parent == list_node.value
    assert list_node[0].value == "pouet"
Ejemplo n.º 24
0
def test_endl():
    red = RedBaron("# line1\n#line2")
    assert red[0].endl.baron_type == "endl"
    assert red[1].endl is None
    red = node("[1, 2,\n]")
    assert red[1].endl.baron_type == "endl"
Ejemplo n.º 25
0
def test_sort():
    import_node = node("from m import b, a, c")
    import_node.targets.sort(key=lambda el: el.value)
    assert import_node.dumps() == "from m import a, b, c"
Ejemplo n.º 26
0
def test_find_in_data():
    red = RedBaron("a\nb")
    assert red.value.find_in_data(red[0])[0] is red[0]
    assert red.value.find_in_data(red[1])[0] is red[1]
    with pytest.raises(ValueError):
        red.value.find_in_data(node("a"))
Ejemplo n.º 27
0
def test_node_next_neighbors():
    red = node("[1, 2, 3]")
    assert list(red[2].next_neighbors) == list(red[3:])
Ejemplo n.º 28
0
def test_indentation_import():
    red = node("from a import (\na1)")
    assert red.targets.el_indentation == "    "
Ejemplo n.º 29
0
def test_int():
    red = node("1")
    assert isinstance(red, NumberNode)
    assert red.value == "1"