def test_builtin_function_name_completion(completer): result = result_set(completer, 'SELECT MAX') assert result == { function('MAX', -3), function('MAX_VALID_TIMESTAMP()', -3), keyword('MAXEXTENTS', -3) }
def test_suggested_cased_always_qualified_column_names(completer): text = 'SELECT from users' position = len('SELECT ') cols = [column(c) for c in cased_users_col_names] result = result_set(completer, text, position) assert result == set(cased_funcs + cols + testdata.builtin_functions() + testdata.keywords())
def test_user_function_name_completion(completer): result = result_set(completer, 'SELECT cu') assert result == { function('Custom_Fun', -2), function('Custom_Func1', -2), function('custom_func2', -2), function('CURRENT_TIMESTAMP()', -2) }
def test_suggested_cased_always_qualified_column_names( completer ): text = 'SELECT from users' position = len('SELECT ') cols = [column(c) for c in cased_users_col_names] result = result_set(completer, text, position) assert result == set(cased_funcs + cols + testdata.builtin_functions() + testdata.keywords())
def test_suggested_cased_column_names(completer): result = result_set(completer, 'SELECT from users', len('SELECT ')) assert result == set(cased_funcs + cased_users_cols + testdata.builtin_functions() + testdata.keywords())
def test_user_function_name_completion_matches_anywhere(completer): result = result_set(completer, 'SELECT om') assert len(result) == 0
def test_select_keyword_completion(completer): result = result_set(completer, 'SEL') assert result == {keyword('SELECT', -3)}
def test_empty_string_completion(completer): result = result_set(completer, '') assert set(testdata.keywords()) == result
def test_auto_escaped_col_names(completer): result = result_set(completer, 'SELECT from "select"', len('SELECT ')) assert result == set(testdata.columns_functions_and_keywords('SELECT'))
def test_user_function_name_completion(completer): result = result_set(completer, 'SELECT cu') assert result == {function('Custom_Fun', -2), function('Custom_Func1', -2), function('custom_func2', -2), function('CURRENT_TIMESTAMP()', -2)}
def test_suggested_column_names_in_function(completer): result = result_set(completer, 'SELECT MAX( from users', len('SELECT MAX(')) assert result == set(testdata.columns('USERS'))
def test_suggested_column_names_in_function(completer): result = result_set( completer, 'SELECT MAX( from users', len('SELECT MAX(') ) assert result == set(testdata.columns('USERS'))
def test_no_column_qualification(text, completer): cols = [column(c) for c in cased_users_col_names] result = result_set(completer, text) assert result == set(cols)
def test_suggest_columns_after_three_way_join(completer): text = '''SELECT * FROM users u1 INNER JOIN users u2 ON u1.id = u2.id INNER JOIN users u3 ON u2.id = u3.''' result = result_set(completer, text) assert (column('id') in result)
def test_suggested_multiple_column_names(completer): result = result_set( completer, 'SELECT id, from users u', len('SELECT id, ') ) assert result == set(testdata.columns_functions_and_keywords('USERS'))
def test_builtin_function_name_completion(completer): result = result_set(completer, 'SELECT MAX') assert result == {function('MAX', -3), function('MAX_VALID_TIMESTAMP()', -3)}
def test_suggested_multiple_column_names(completer): result = result_set(completer, 'SELECT id, from users u', len('SELECT id, ')) assert result == set(testdata.columns_functions_and_keywords('USERS'))
def test_join_using_suggests_columns_after_first_column(completer, text): result = result_set(completer, text) cols = [column(c) for c in metadata['tables']['USERS']] cols += [column(c) for c in metadata['tables']['ORDERS']] assert result == set(cols)
def test_insert(completer, text): position = text.find('(') + 1 result = result_set(completer, text, position) assert result == set(testdata.columns('USERS'))