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_has_equal_ast_not_exact_fail(): query = "SELECT id, name FROM Trips WHERE id < 100 AND name = 'greg'" state = prepare_state(query, query) child = check_node(state, "SelectStmt") with pytest.raises(TF) as exc_info: has_equal_ast(child, sql="id < 999", start="expression", exact=False) print_message(exc_info)
def test_has_equal_ast_field_fail(): state = prepare_state('SELECT id, name FROM Trips', "SELECT name FROM Trips") sel = cf.check_node(state, "SelectStmt", 0) tl = cf.check_field(sel, "target_list", 0) with pytest.raises(TF) as exc_info: has_equal_ast(tl) print_message(exc_info)
def test_has_equal_ast_simple(self, state): state.solution_ast = state.ast_dispatcher.ast_mod.parse( "echo a $b ${c}") has_equal_ast(state)
def test_has_equal_ast_manual_pass(): query = "SELECT id, name FROM Trips" state = prepare_state(query, query) child = check_node(state, "SelectStmt") has_equal_ast(child, sql=query, start="subquery")
def test_has_equal_ast_manual_fail(): query = "SELECT id, name FROM Trips" state = prepare_state(query, query) with pytest.raises(TF): child = check_node(state, "SelectStmt") has_equal_ast(child, sql="SELECT * FROM Trips", start="subquery")
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_equal_ast_fail_quoted_column(): state = prepare_state('SELECT "id", "name" FROM "Trips"', "SELECT id, name FROM Trips") with pytest.raises(TF): has_equal_ast(state=state)
def test_has_equal_ast_not_exact_pass(): query = "SELECT id, name FROM Trips WHERE id < 100 AND name = 'greg'" state = prepare_state(query, query) child = check_node(state, "SelectStmt") has_equal_ast(child, sql="id < 100", start="expression", exact=False)
def test_has_equal_ast_pass_unparsed(): query = "SELECT CURSOR (SELECT * FROM TRIPS) FROM Trips" state = prepare_state(query, query) has_equal_ast(state=state)
def test_has_equal_ast_pass_spacing(): state = prepare_state("SELECT id,name from Trips", "SELECT id, name FROM Trips") has_equal_ast(state=state)
def test_has_equal_ast_pass_clause_caps(): state = prepare_state("select id, name from Trips", "SELECT id, name FROM Trips") has_equal_ast(state=state)
def test_has_equal_ast_pass_identical(): state = prepare_state("SELECT id, name FROM Trips", "SELECT id, name FROM Trips") has_equal_ast(state=state)
def test_has_equal_ast_simple_fail(self, state): with pytest.raises(TF): has_equal_ast(state)
def test_has_equal_ast_pass(sol, stu): state = prepare_state(sol, stu) has_equal_ast(state=state)
def test_has_equal_ast_subcode(self, state): word = check_edge(state, "words", 0) has_equal_ast(word)
def test_has_equal_ast_subcode(state): word = check_field(check_node(state, 'SimpleCommand'), 'words', 0) has_equal_ast(word)