コード例 #1
0
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)])
コード例 #2
0
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)])
コード例 #3
0
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')])
コード例 #4
0
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')])
コード例 #5
0
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'))])
コード例 #6
0
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()')])
コード例 #7
0
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)])
コード例 #8
0
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),
    ])
コード例 #9
0
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),
    ])
コード例 #10
0
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')])
コード例 #11
0
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),
        ])
コード例 #12
0
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')])
コード例 #13
0
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()')])
コード例 #14
0
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')])
コード例 #15
0
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',)]
    )
コード例 #16
0
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')])
コード例 #17
0
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',)]
    )
コード例 #18
0
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),
                              ])
コード例 #19
0
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'
        ),
    ])
コード例 #20
0
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'
        ),
    ])
コード例 #21
0
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)
コード例 #22
0
}

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())
コード例 #23
0
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]
    )
コード例 #24
0
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]
    )
コード例 #25
0
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'
)]
コード例 #26
0
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")),
    ])
コード例 #27
0
    "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",
コード例 #28
0
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', )])
コード例 #29
0
def test_function_alias_search_with_aliases(completer):
    text = 'SELECT blog.ee'
    result = get_result(completer, text)
    assert result[0] == function('enter_entry()', -2)
コード例 #30
0
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)
コード例 #31
0
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])
コード例 #32
0
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", )])
コード例 #33
0
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)
    ])
コード例 #34
0
}

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():
コード例 #35
0
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', )])
コード例 #36
0
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',
コード例 #37
0
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', )])
コード例 #38
0
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'))])
コード例 #39
0
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",
コード例 #40
0
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'))])
コード例 #41
0
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"))
    ]
コード例 #42
0
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)
    ])
コード例 #43
0
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])
コード例 #44
0
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)
    ])
コード例 #45
0
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)
コード例 #46
0
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", )])
コード例 #47
0
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'))
    ]
コード例 #48
0
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'))
    ]
コード例 #49
0
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',