def test_select_suggests_cols_with_visible_table_scope(): suggestions = suggest_type('SELECT FROM tabl', 'SELECT ') assert set(suggestions) == set([ Column(tables=((None, 'tabl', None, False), )), Function(schema=None), Keyword() ])
def test_where_in_suggests_columns(expression): suggestions = suggest_type(expression, expression) assert set(suggestions) == set([ Column(tables=((None, 'tabl', None, False), )), Function(schema=None), Keyword(), ])
def test_col_comma_suggests_cols(): suggestions = suggest_type("SELECT a, b, FROM tbl", "SELECT a, b,") assert set(suggestions) == set([ Column(table_refs=((None, "tbl", None, False), ), qualifiable=True), Function(schema=None), Keyword("SELECT"), ])
def test_2_statements_2nd_current(): suggestions = suggest_type('select * from a; select * from ', 'select * from a; select * from ') assert set(suggestions) == set([ Table(schema=None), View(schema=None), Function(schema=None, filter='is_set_returning'), Schema(), ]) suggestions = suggest_type('select * from a; select from b', 'select * from a; select ') assert set(suggestions) == set([ Column(tables=((None, 'b', None, False), )), Function(schema=None), Keyword() ]) # Should work even if first statement is invalid suggestions = suggest_type('select * from; select * from ', 'select * from; select * from ') assert set(suggestions) == set([ Table(schema=None), View(schema=None), Function(schema=None, filter='is_set_returning'), Schema(), ])
def test_select_suggests_cols_and_funcs(): suggestions = suggest_type("SELECT ", "SELECT ") assert set(suggestions) == set([ Column(table_refs=(), qualifiable=True), Function(schema=None), Keyword("SELECT"), ])
def test_lparen_suggests_cols_and_funcs(): suggestion = suggest_type("SELECT MAX( FROM tbl", "SELECT MAX(") assert set(suggestion) == set([ Column(table_refs=((None, "tbl", None, False), ), qualifiable=True), Function(schema=None), Keyword("("), ])
def test_statements_in_function_body(text): suggestions = suggest_type(text, text[: text.find(" ") + 1]) assert set(suggestions) == { Column(table_refs=((None, "foo", None, False),), qualifiable=True), Function(schema=None), Keyword("SELECT"), }
def test_suggest_where_keyword(text): # https://github.com/dbcli/mycli/issues/135 suggestions = suggest_type(text, text) assert set(suggestions) == set([ Column(tables=((None, 'foo', None, False), )), Function(schema=None), Keyword(), ])
def test_where_equals_any_suggests_columns_or_keywords(): text = 'SELECT * FROM tabl WHERE foo = ANY(' suggestions = suggest_type(text, text) assert set(suggestions) == set([ Column(tables=((None, 'tabl', None, False), )), Function(schema=None), Keyword(), ])
def test_partially_typed_col_name_suggests_col_names(): suggestions = suggest_type('SELECT * FROM tabl WHERE col_n', 'SELECT * FROM tabl WHERE col_n') assert set(suggestions) == set([ Column(tables=((None, 'tabl', None, False), )), Function(schema=None), Keyword() ])
def test_sub_select_col_name_completion(): suggestions = suggest_type("SELECT * FROM (SELECT FROM abc", "SELECT * FROM (SELECT ") assert set(suggestions) == set([ Column(table_refs=((None, "abc", None, False), ), qualifiable=True), Function(schema=None), Keyword("SELECT"), ])
def cols_etc(table, schema=None, alias=None, is_function=False, parent=None): return set([ Column(table_refs=(TableReference(schema, table, alias, is_function), ), qualifiable=True), Function(schema=parent), Keyword() ])
def test_distinct_and_order_by_suggestions_with_aliases( text, text_before, last_keyword): suggestions = suggest_type(text, text_before) assert set(suggestions) == set([ Column(table_refs=( TableReference(None, 'tbl', 'x', False), TableReference(None, 'tbl1', 'y', False), ), local_tables=(), qualifiable=True), Function(schema=None), Keyword(last_keyword) ])
def test_2_statements_1st_current(): suggestions = suggest_type('select * from ; select * from b', 'select * from ') assert set(suggestions) == set([ Table(schema=None), View(schema=None), Function(schema=None, filter='for_from_clause'), Schema(), ]) suggestions = suggest_type('select from a; select * from b', 'select ') assert set(suggestions) == set([ Column(tables=((None, 'a', None, False), )), Function(schema=None), Keyword() ])
def test_2_statements_2nd_current(): suggestions = suggest_type("select * from a; select * from ", "select * from a; select * from ") assert set(suggestions) == set([FromClauseItem(schema=None), Schema()]) suggestions = suggest_type("select * from a; select from b", "select * from a; select ") assert set(suggestions) == set([ Column(table_refs=((None, "b", None, False), ), qualifiable=True), Function(schema=None), Keyword("SELECT"), ]) # Should work even if first statement is invalid suggestions = suggest_type("select * from; select * from ", "select * from; select * from ") assert set(suggestions) == set([FromClauseItem(schema=None), Schema()])