def test_bad_join_name(self): bad_json = {'select': {'value': 't1.field1'}, 'from': ['t1', {'left intro join': 't2', 'on': {'eq': ['t1.id', 't2.id']}}]} assertRaises( ["Fail to detect join type", 'left intro join'], lambda: format(bad_json) )
def test_incomplete2(self): assertRaises("", lambda: parse("SELECT * FROM"))
def test_incomplete1(self): assertRaises('Expected {{expression1 [{[as] column_name1}]}', lambda: parse("SELECT"))
def test_bad_from(self): assertRaises('(at char 20)', lambda: parse("select A, B, C frum dual"))
def test_bad_select2(self): assertRaises('Expected {{expression1 [{[as] column_name1}]}', lambda: parse("Select &&& FROM dual"))
def test_bad_select1(self): assertRaises('Expected select', lambda: parse("se1ect A, B, C from dual"))
def test_join_on_using_together(self): assertRaises( "Expecting one of", lambda: parse( "SELECT * FROM t1 JOIN t2 ON t1.id=t2.id USING (id)"))
def test_dash_in_tablename(self): assertRaises( ["group by", "order by", "having", "limit", "where"], # 012345678901234567890123456789012345678901234567890123456789 lambda: parse( "select * from coverage-summary.source.file.covered limit 20"))
def test_order_by_must_follow_union(self): assertRaises( ["(at char 27)"], lambda: parse("select a from b order by a union select 2"))