def test_user_function_name_completion_matches_anywhere(completer): result = result_set(completer, 'SELECT om') assert result == set([ function('custom_fun()', -2), function('_custom_fun()', -2), function('custom_func1()', -2), function('custom_func2()', -2)])
def test_user_function_name_completion_matches_anywhere(completer): result = get_result(completer, 'SELECT om') assert completions_to_set(result) == completions_to_set([ function('custom_fun()', -2), function('_custom_fun()', -2), function('custom_func1()', -2), function('custom_func2()', -2)])
def test_aliases_with_casing(completer, text): result = get_result(completer, text) assert completions_to_set(result) == completions_to_set(cased_schemas + [ table('users u'), table('Orders O' if text == 'SELECT * FROM ' else 'Orders O2'), table('"select" s'), function('Func1() F'), function('func2() f')])
def test_table_aliases(completer, text): result = get_result(completer, text) assert completions_to_set(result) == completions_to_set(testdata.schemas() + [ table('users u'), table('orders o' if text == 'SELECT * FROM ' else 'orders o2'), table('"select" s'), function('func1() f'), function('func2() f')])
def test_schema_qualified_function_name(completer, complete_event): text = 'SELECT custom.func' postion = len(text) result = set(completer.get_completions( Document(text=text, cursor_position=postion), complete_event)) assert result == set([ function('func3', -len('func')), function('set_returning_func', -len('func'))])
def test_table_casing(completer, text): result = get_result(completer, text) assert completions_to_set(result) == completions_to_set(cased_schemas + [ table('users'), table('Orders'), table('"select"'), function('Func1()'), function('func2()')])
def test_user_function_name_completion_matches_anywhere(completer, complete_event): text = 'SELECT om' position = len('SELECT om') result = completer.get_completions( Document(text=text, cursor_position=position), complete_event) assert set(result) == set([ function('custom_func1', -2), function('custom_func2', -2)])
def test_user_function_name_completion(completer): result = get_result(completer, 'SELECT cu') assert completions_to_set(result) == completions_to_set([ function('custom_fun()', -2), function('_custom_fun()', -2), function('custom_func1()', -2), function('custom_func2()', -2), keyword('CURRENT', -2), ])
def test_user_function_name_completion(completer): result = result_set(completer, 'SELECT cu') assert result == set([ function('custom_fun()', -2), function('_custom_fun()', -2), function('custom_func1()', -2), function('custom_func2()', -2), keyword('CURRENT', -2), ])
def test_table_aliases(completer_with_aliases, complete_event, text): result = completer_with_aliases.get_completions( Document(text=text), complete_event) assert set(result) == set(testdata.schemas() + [ table('users u'), table('orders o' if text == 'SELECT * FROM ' else 'orders o2'), table('"select" s'), function('func1() f'), function('func2() f')])
def test_user_function_name_completion(completer, complete_event): text = 'SELECT cu' position = len('SELECT cu') result = completer.get_completions( Document(text=text, cursor_position=position), complete_event) assert set(result) == set([ function('custom_func1', -2), function('custom_func2', -2), keyword('CURRENT', -2), ])
def test_aliases_with_casing(completer_aliases_casing, complete_event, text): result = completer_aliases_casing.get_completions( Document(text=text), complete_event) assert set(result) == set([ schema('public'), schema('CUSTOM'), schema('"Custom"'), table('users u'), table('Orders O' if text == 'SELECT * FROM ' else 'Orders O2'), table('"select" s'), function('Func1() F'), function('func2() f')])
def test_table_casing(completer_with_casing, complete_event, text): result = completer_with_casing.get_completions( Document(text=text), complete_event) assert set(result) == set([ schema('public'), schema('CUSTOM'), schema('"Custom"'), table('users'), table('Orders'), table('"select"'), function('Func1()'), function('func2()')])
def test_duplicate_table_aliases(aliased_completer, complete_event, text): result = aliased_completer.get_completions( Document(text=text), complete_event) assert set(result) == set(testdata.schemas() + [ table('orders o2'), table('users u'), table('"Users" U'), table('"select" s'), view('user_emails ue'), function('_custom_fun() cf'), function('custom_fun() cf'), function('custom_func1() cf'), function('custom_func2() cf'), function('set_returning_func() srf')])
def test_all_schema_objects_with_aliases(completer): text = ('SELECT * FROM ') result = get_result(completer, text) assert completions_to_set(result) >= completions_to_set( [table(x) for x in ('orders o', '"select" s', 'custom.shipments s')] + [function(x) for x in ('func2() f',)] )
def test_duplicate_aliases_with_casing(cased_aliased_completer, complete_event, text): result = cased_aliased_completer.get_completions( Document(text=text), complete_event) assert set(result) == set([ schema('PUBLIC'), table('Orders O2'), table('Users U'), table('"Users" U'), table('"select" s'), view('User_Emails UE'), function('_custom_fun() cf'), function('Custom_Fun() CF'), function('Custom_Func1() CF'), function('custom_func2() cf'), function('set_returning_func() srf')])
def test_all_schema_objects_with_casing(completer): text = 'SELECT * FROM ' result = get_result(completer, text) assert completions_to_set(result) >= completions_to_set( [table(x) for x in ('Orders', '"select"', 'CUSTOM.shipments')] + [function(x + '()') for x in ('func2',)] )
def test_builtin_function_name_completion(completer, complete_event): text = 'SELECT MA' position = len('SELECT MA') result = completer.get_completions( Document(text=text, cursor_position=position), complete_event) assert set(result) == set([function('MAX', -2), keyword('MAXEXTENTS', -2), ])
def test_duplicate_table_aliases(completer, text): result = get_result(completer, text) assert completions_to_set(result) == completions_to_set(testdata.schemas() + [ table('orders o2'), table('users u'), table('"Users" U'), table('"select" s'), view('user_emails ue'), view('functions f'), function('_custom_fun() cf'), function('custom_fun() cf'), function('custom_func1() cf'), function('custom_func2() cf'), function( 'set_returning_func(x := , y := ) srf', display='set_returning_func(x, y) srf' ), ])
def test_duplicate_aliases_with_casing(completer, text): result = get_result(completer, text) assert completions_to_set(result) == completions_to_set([ schema('PUBLIC'), table('Orders O2'), table('Users U'), table('"Users" U'), table('"select" s'), view('User_Emails UE'), view('Functions F'), function('_custom_fun() cf'), function('Custom_Fun() CF'), function('Custom_Func1() CF'), function('custom_func2() cf'), function( 'set_returning_func(x := , y := ) srf', display='set_returning_func(x, y) srf' ), ])
def test_function_alias_search_with_aliases(completer_aliases_casing, complete_event): text = 'SELECT blog.ee' result = completer_aliases_casing.get_completions(Document(text=text), complete_event) assert result[0] == function('enter_entry()', -2)
} metadata = dict((k, {'public': v}) for k, v in metadata.items()) testdata = MetaData(metadata) cased_users_col_names = ['ID', 'PARENTID', 'Email', 'First_Name', 'last_name'] cased_users2_col_names = ['UserID', 'UserName'] cased_funcs = ['Custom_Fun', '_custom_fun', 'Custom_Func1', 'custom_func2', 'set_returning_func'] cased_tbls = ['Users', 'Orders'] cased_views = ['User_Emails'] casing = (['SELECT', 'PUBLIC'] + cased_funcs + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names) # Lists for use in assertions cased_funcs = [function(f + '()') for f in cased_funcs] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = [table(t) for t in ('users u', '"Users" U', 'orders o', '"select" s')] + [view('user_emails ue')] + [function(f) for f in ( '_custom_fun() cf', 'custom_fun() cf', 'custom_func1() cf', 'custom_func2() cf', 'set_returning_func() srf')] cased_aliased_rels = [table(t) for t in ('Users U', '"Users" U', 'Orders O', '"select" s')] + [view('User_Emails UE')] + [function(f) for f in ( '_custom_fun() cf', 'Custom_Fun() CF', 'Custom_Func1() CF', 'custom_func2() cf', 'set_returning_func() srf')] completers = testdata.get_completers(casing) @parametrize('completer', completers())
def test_list_functions_for_special(completer): result = get_result(completer, r'\df ') assert completions_to_set(result) == completions_to_set( [schema('PUBLIC')] + [function(f) for f in cased_func_names] )
def test_list_functions_for_special(completer): result = result_set(completer, r'\df ') assert result == set( [schema('PUBLIC')] + [function(f) for f in cased_func_names] )
testdata = MetaData(metadata) cased_users_col_names = ['ID', 'PARENTID', 'Email', 'First_Name', 'last_name'] cased_users2_col_names = ['UserID', 'UserName'] cased_func_names = [ 'Custom_Fun', '_custom_fun', 'Custom_Func1', 'custom_func2', 'set_returning_func' ] cased_tbls = ['Users', 'Orders'] cased_views = ['User_Emails', 'Functions'] casing = ( ['SELECT', 'PUBLIC'] + cased_func_names + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names ) # Lists for use in assertions cased_funcs = [ function(f) for f in ('Custom_Fun()', '_custom_fun()', 'Custom_Func1()', 'custom_func2()') ] + [function('set_returning_func(x := , y := )', display='set_returning_func(x, y)')] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = [ table(t) for t in ('users u', '"Users" U', 'orders o', '"select" s') ] + [view('user_emails ue'), view('functions f')] + [ function(f) for f in ( '_custom_fun() cf', 'custom_fun() cf', 'custom_func1() cf', 'custom_func2() cf' ) ] + [function( 'set_returning_func(x := , y := ) srf', display='set_returning_func(x, y) srf' )]
def test_schema_qualified_function_name_after_from(completer): text = "SELECT * FROM custom.set_r" result = get_result(completer, text) assert completions_to_set(result) == completions_to_set([ function("set_returning_func()", -len("func")), ])
"custom_func2", "set_returning_func", ] cased_tbls = ["Users", "Orders"] cased_views = ["User_Emails", "Functions"] casing = ( ["SELECT", "PUBLIC"] + cased_func_names + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names ) # Lists for use in assertions cased_funcs = [ function(f) for f in ("Custom_Fun()", "_custom_fun()", "Custom_Func1()", "custom_func2()") ] + [function("set_returning_func(x := , y := )", display="set_returning_func(x, y)")] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = ( [table(t) for t in ("users u", '"Users" U', "orders o", '"select" s')] + [view("user_emails ue"), view("functions f")] + [ function(f) for f in ( "_custom_fun() cf", "custom_fun() cf", "custom_func1() cf", "custom_func2() cf",
def test_all_schema_objects(completer): text = ('SELECT * FROM ') result = result_set(completer, text) assert result >= set( [table(x) for x in ('orders', '"select"', 'custom.shipments')] + [function(x + '()') for x in ('func2', )])
def test_function_alias_search_with_aliases(completer): text = 'SELECT blog.ee' result = get_result(completer, text) assert result[0] == function('enter_entry()', -2)
def test_function_alias_search_without_aliases(completer): text = 'SELECT blog.ees' result = get_result(completer, text) assert result[0] == function('extract_entry_symbols()', -3)
def test_list_functions_for_special(completer): result = result_set(completer, r'\df ') assert result == set([schema('PUBLIC')] + [function(f) for f in cased_func_names])
def test_all_schema_objects_with_casing(completer): text = "SELECT * FROM " result = get_result(completer, text) assert completions_to_set(result) >= completions_to_set( [table(x) for x in ("Orders", '"select"', "CUSTOM.shipments")] + [function(x + "()") for x in ("func2", )])
def test_builtin_function_name_completion(completer): result = result_set(completer, 'SELECT MA') assert result == set([ function('MAX', -2), keyword('MAXEXTENTS', -2), keyword('MATERIALIZED VIEW', -2) ])
} metadata = dict((k, {'public': v}) for k, v in metadata.items()) testdata = MetaData(metadata) cased_users_cols = ['ID', 'PARENTID', 'Email', 'First_Name', 'last_name'] cased_users2_cols = ['UserID', 'UserName'] cased_funcs = ['Custom_Fun', '_custom_fun', 'Custom_Func1', 'custom_func2', 'set_returning_func'] cased_tbls = ['Users', 'Orders'] cased_views = ['User_Emails'] casing = (['SELECT', 'PUBLIC'] + cased_funcs + cased_tbls + cased_views + cased_users_cols + cased_users2_cols) # Lists for use in assertions cased_funcs = [function(f + '()') for f in cased_funcs] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_cols] aliased_rels = [table(t) for t in ('users u', '"Users" U', 'orders o', '"select" s')] + [view('user_emails ue')] + [function(f) for f in ( '_custom_fun() cf', 'custom_fun() cf', 'custom_func1() cf', 'custom_func2() cf', 'set_returning_func() srf')] cased_aliased_rels = [table(t) for t in ('Users U', '"Users" U', 'Orders O', '"select" s')] + [view('User_Emails UE')] + [function(f) for f in ( '_custom_fun() cf', 'Custom_Fun() CF', 'Custom_Func1() CF', 'custom_func2() cf', 'set_returning_func() srf')] @pytest.fixture def completer():
def test_all_schema_objects_with_casing(completer): text = 'SELECT * FROM ' result = result_set(completer, text) assert result >= set( [table(x) for x in ('Orders', '"select"', 'CUSTOM.shipments')] + [function(x + '()') for x in ('func2', )])
testdata = MetaData(metadata) cased_users_col_names = ['ID', 'PARENTID', 'Email', 'First_Name', 'last_name'] cased_users2_col_names = ['UserID', 'UserName'] cased_func_names = [ 'Custom_Fun', '_custom_fun', 'Custom_Func1', 'custom_func2', 'set_returning_func' ] cased_tbls = ['Users', 'Orders'] cased_views = ['User_Emails', 'Functions'] casing = (['SELECT', 'PUBLIC'] + cased_func_names + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names) # Lists for use in assertions cased_funcs = [ function(f) for f in ('Custom_Fun()', '_custom_fun()', 'Custom_Func1()', 'custom_func2()') ] + [ function('set_returning_func(x := , y := )', display='set_returning_func(x, y)') ] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = [ table(t) for t in ('users u', '"Users" U', 'orders o', '"select" s') ] + [view('user_emails ue'), view('functions f')] + [ function(f) for f in ('_custom_fun() cf', 'custom_fun() cf', 'custom_func1() cf', 'custom_func2() cf') ] + [ function('set_returning_func(x := , y := ) srf',
def test_all_schema_objects_with_aliases(completer): text = ('SELECT * FROM ') result = result_set(completer, text) assert result >= set( [table(x) for x in ('orders o', '"select" s', 'custom.shipments s')] + [function(x) for x in ('func2() f', )])
def test_schema_qualified_function_name(completer): text = 'SELECT custom.func' result = get_result(completer, text) assert completions_to_set(result) == completions_to_set([ function('func3()', -len('func')), function('set_returning_func()', -len('func'))])
cased_users_col_names = ["ID", "PARENTID", "Email", "First_Name", "last_name"] cased_users2_col_names = ["UserID", "UserName"] cased_func_names = [ "Custom_Fun", "_custom_fun", "Custom_Func1", "custom_func2", "set_returning_func", ] cased_tbls = ["Users", "Orders"] cased_views = ["User_Emails", "Functions"] casing = (["SELECT", "PUBLIC"] + cased_func_names + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names) # Lists for use in assertions cased_funcs = [ function(f) for f in ("Custom_Fun()", "_custom_fun()", "Custom_Func1()", "custom_func2()") ] + [ function("set_returning_func(x := , y := )", display="set_returning_func(x, y)") ] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = ( [table(t) for t in ("users u", '"Users" U', "orders o", '"select" s')] + [view("user_emails ue"), view("functions f")] + [ function(f) for f in ( "_custom_fun() cf", "custom_fun() cf", "custom_func1() cf",
def test_schema_qualified_function_name(completer): text = 'SELECT custom.func' result = result_set(completer, text) assert result == set([ function('func3()', -len('func')), function('set_returning_func()', -len('func'))])
def test_drop_alter_function(completer, action): assert get_result(completer, action + " FUNCTION set_ret") == [ function("set_returning_func(x integer, y integer)", -len("set_ret")) ]
def test_builtin_function_name_completion(completer): result = get_result(completer, 'SELECT MA') assert completions_to_set(result) == completions_to_set([ function('MAX', -2), keyword('MAXEXTENTS', -2), keyword('MATERIALIZED VIEW', -2) ])
def test_list_functions_for_special(completer): result = get_result(completer, r"\df ") assert completions_to_set(result) == completions_to_set( [schema("PUBLIC")] + [function(f) for f in cased_func_names])
def test_function_alias_search_without_aliases(completer_with_casing, complete_event): text = 'SELECT blog.ees' result = completer_with_casing.get_completions(Document(text=text), complete_event) assert result[0] == function('extract_entry_symbols()', -3)
def test_all_schema_objects_with_aliases(completer): text = "SELECT * FROM " result = get_result(completer, text) assert completions_to_set(result) >= completions_to_set( [table(x) for x in ("orders o", '"select" s', "custom.shipments s")] + [function(x) for x in ("func2() f", )])
def test_drop_alter_function(completer, action): assert get_result(completer, action + ' FUNCTION set_ret') == [ function('set_returning_func(x integer, y integer)', -len('set_ret')) ]
metadata = dict((k, {'public': v}) for k, v in metadata.items()) testdata = MetaData(metadata) cased_users_col_names = ['ID', 'PARENTID', 'Email', 'First_Name', 'last_name'] cased_users2_col_names = ['UserID', 'UserName'] cased_funcs = [ 'Custom_Fun', '_custom_fun', 'Custom_Func1', 'custom_func2', 'set_returning_func' ] cased_tbls = ['Users', 'Orders'] cased_views = ['User_Emails'] casing = (['SELECT', 'PUBLIC'] + cased_funcs + cased_tbls + cased_views + cased_users_col_names + cased_users2_col_names) # Lists for use in assertions cased_funcs = [function(f + '()') for f in cased_funcs] cased_tbls = [table(t) for t in (cased_tbls + ['"Users"', '"select"'])] cased_rels = [view(t) for t in cased_views] + cased_funcs + cased_tbls cased_users_cols = [column(c) for c in cased_users_col_names] aliased_rels = [ table(t) for t in ('users u', '"Users" U', 'orders o', '"select" s') ] + [view('user_emails ue')] + [ function(f) for f in ('_custom_fun() cf', 'custom_fun() cf', 'custom_func1() cf', 'custom_func2() cf', 'set_returning_func() srf') ] cased_aliased_rels = [ table(t) for t in ('Users U', '"Users" U', 'Orders O', '"select" s') ] + [view('User_Emails UE')] + [ function(f) for f in ('_custom_fun() cf', 'Custom_Fun() CF', 'Custom_Func1() CF',