Beispiel #1
0
    def test_osh_selector_var_sub(self, state):
        target = state.ast_dispatcher.nodes.get("SimpleVarSub")
        word = check_edge(state, "words", 2)
        varsub = check_edge(word, "parts", 0)

        assert isinstance(varsub.student_ast, target)
        assert varsub.student_ast.token.val == "$b"
Beispiel #2
0
    def test_osh_selector_var_sub(self, state):
        target = state.ast_dispatcher.nodes.get('SimpleVarSub')
        cl = check_node(state, "SimpleCommand")
        word = check_edge(cl, 'words', 2)
        varsub = check_edge(word, 'parts', 0)

        assert isinstance(varsub.student_ast, target)
        assert varsub.student_ast.token == "$b"
def test_has_equal_ast_field_fail():
    state = prepare_state("SELECT id, name FROM Trips",
                          "SELECT name FROM Trips")
    sel = check_node(state, "SelectStmt", 0)
    tl = check_edge(sel, "target_list", 0)
    with pytest.raises(TF):
        has_equal_ast(tl)
def test_check_edge_antlr_exception_skips(dialect_name):
    state = prepare_state("SELECT x FROM ___!", "SELECT x FROM ___!",
                          dialect_name)
    assert isinstance(state.student_ast,
                      state.ast_dispatcher.ast_mod.ParseError)
    select = check_edge(state, "where", 0)  # should be skipped
    assert select is state
def test_where_brackets_with_has_code():
    state = prepare_state("SELECT a FROM b WHERE c AND d",
                          "SELECT a FROM b WHERE (d AND c)")
    sel = check_node(state, "SelectStmt")
    wc = check_edge(sel, "where_clause")
    has_code(wc, "d")
    with pytest.raises(TF):
        has_code(wc, "not_there")
Beispiel #6
0
 def test_osh_selector_result(self, state):
     target = state.ast_dispatcher.nodes.get('CompoundWord')
     cl = check_node(state, "SimpleCommand")
     cmd = check_edge(cl, 'words', 0)
     assert isinstance(cmd.student_ast, target)
     assert cmd.student_ast.parts[0].token == "echo"
Beispiel #7
0
 def test_has_equal_ast_subcode(self, state):
     word = check_edge(state, "words", 0)
     has_equal_ast(word)
Beispiel #8
0
 def test_osh_selector_result(self, state):
     target = state.ast_dispatcher.nodes.get("CompoundWord")
     cmd = check_edge(state, "words", 0)
     assert isinstance(cmd.student_ast, target)
     assert cmd.student_ast.parts[0].token.val == "echo"
Beispiel #9
0
 def test_osh_selector_fail(self, state):
     child = check_node(state, 'SimpleCommand')
     with pytest.raises(TF):
         check_edge(child, 'words', 4)
Beispiel #10
0
 def test_osh_selector_fail(self, state):
     with pytest.raises(TF):
         check_edge(state, "words", 4)
def test_has_code_subset_re_pass2(state_tst):
    select = check_node(state_tst, "SelectStmt", 0)
    where = check_edge(select, "where_clause")
    with pytest.raises(TF):
        has_code(where, "id > [a-z]")
def test_has_equal_ast_field_success():
    state = prepare_state("SELECT name FROM Trips", "SELECT name FROM Trips")
    sel = check_node(state, "SelectStmt", 0)
    tl = check_edge(sel, "target_list", 0)
    has_equal_ast(tl)
def test_has_code_fixed_subset_fail2(state_tst):
    select = check_node(state_tst, "SelectStmt", 0)
    where = check_edge(select, "where_clause")
    with pytest.raises(TF):
        has_code(where, "WHERE id > 4", fixed=True)
def test_has_code_subset_re_pass(state_tst):
    select = check_node(state_tst, "SelectStmt", 0)
    where = check_edge(select, "where_clause")
    has_code(where, "id > [0-9]")
Beispiel #15
0
 def test_has_equal_ast_subcode(self, state):
     word = check_edge(check_node(state, 'SimpleCommand'), 'words', 0)
     has_equal_ast(word)
def test_has_code_fixed_subset_pass(state_tst):
    select = check_node(state_tst, "SelectStmt", 0)
    where = check_edge(select, "where_clause")
    has_code(where, "id > 4", fixed=True)
def test_check_edge_index_none_fail():
    state = prepare_state("SELECT a, b FROM b WHERE a < 10", "SELECT a FROM b")
    sel = check_node(state, "SelectStmt")
    with pytest.raises(TF):
        check_edge(sel, "where_clause")
def test_check_node_from_list():
    state = prepare_state("SELECT a, b, c FROM x", "SELECT a, b, c FROM x")
    sel = check_node(state, "SelectStmt", 0)
    tl = check_edge(sel, "target_list", None)
    check_node(tl, "Identifier")
def test_check_edge_index_fail():
    state = prepare_state("SELECT id, name FROM Trips", "SELECT id FROM Trips")
    select = check_node(state, "SelectStmt", 0)
    with pytest.raises(TF):
        check_edge(select, "target_list", 1)
def test_check_edge_index_pass():
    state = prepare_state("SELECT id, name FROM Trips",
                          "SELECT id, name FROM Trips")
    select = check_node(state, "SelectStmt", 0)
    check_edge(select, "target_list", 1)
def test_check_edge_fail():
    state = prepare_state("SELECT id FROM Trips WHERE id > 3",
                          "SELECT id FROM Trips WHERE id>4")
    select = check_node(state, "SelectStmt", 0)
    check_edge(select, "where_clause")