Adding upstream version 1.27.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f7cfed155a
commit
69f0f331c6
18 changed files with 474 additions and 94 deletions
157
test/myclirc
157
test/myclirc
|
@ -1,12 +1,157 @@
|
|||
# vi: ft=dosini
|
||||
|
||||
# This file is loaded after mycli/myclirc and should override only those
|
||||
# variables needed for testing.
|
||||
# To see what every variable does see mycli/myclirc
|
||||
|
||||
[main]
|
||||
|
||||
# Enables context sensitive auto-completion. If this is disabled the all
|
||||
# possible completions will be listed.
|
||||
smart_completion = True
|
||||
|
||||
# Multi-line mode allows breaking up the sql statements into multiple lines. If
|
||||
# this is set to True, then the end of the statements must have a semi-colon.
|
||||
# If this is set to False then sql statements can't be split into multiple
|
||||
# lines. End of line (return) is considered as the end of the statement.
|
||||
multi_line = False
|
||||
|
||||
# Destructive warning mode will alert you before executing a sql statement
|
||||
# that may cause harm to the database such as "drop table", "drop database"
|
||||
# or "shutdown".
|
||||
destructive_warning = True
|
||||
|
||||
# log_file location.
|
||||
log_file = ~/.mycli.test.log
|
||||
|
||||
# Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO"
|
||||
# and "DEBUG". "NONE" disables logging.
|
||||
log_level = DEBUG
|
||||
prompt = '\t \u@\h:\d> '
|
||||
|
||||
# Log every query and its results to a file. Enable this by uncommenting the
|
||||
# line below.
|
||||
# audit_log = ~/.mycli-audit.log
|
||||
|
||||
# Timing of sql statements and table rendering.
|
||||
timing = True
|
||||
|
||||
# Beep after long-running queries are completed; 0 to disable.
|
||||
beep_after_seconds = 0
|
||||
|
||||
# Table format. Possible values: ascii, double, github,
|
||||
# psql, plain, simple, grid, fancy_grid, pipe, orgtbl, rst, mediawiki, html,
|
||||
# latex, latex_booktabs, textile, moinmoin, jira, vertical, tsv, csv.
|
||||
# Recommended: ascii
|
||||
table_format = ascii
|
||||
|
||||
# Syntax coloring style. Possible values (many support the "-dark" suffix):
|
||||
# manni, igor, xcode, vim, autumn, vs, rrt, native, perldoc, borland, tango, emacs,
|
||||
# friendly, monokai, paraiso, colorful, murphy, bw, pastie, paraiso, trac, default,
|
||||
# fruity.
|
||||
# Screenshots at http://mycli.net/syntax
|
||||
# Can be further modified in [colors]
|
||||
syntax_style = default
|
||||
|
||||
# Keybindings: Possible values: emacs, vi.
|
||||
# Emacs mode: Ctrl-A is home, Ctrl-E is end. All emacs keybindings are available in the REPL.
|
||||
# When Vi mode is enabled you can use modal editing features offered by Vi in the REPL.
|
||||
key_bindings = emacs
|
||||
|
||||
# Enabling this option will show the suggestions in a wider menu. Thus more items are suggested.
|
||||
wider_completion_menu = False
|
||||
|
||||
# MySQL prompt
|
||||
# \D - The full current date
|
||||
# \d - Database name
|
||||
# \h - Hostname of the server
|
||||
# \m - Minutes of the current time
|
||||
# \n - Newline
|
||||
# \P - AM/PM
|
||||
# \p - Port
|
||||
# \R - The current time, in 24-hour military time (0-23)
|
||||
# \r - The current time, standard 12-hour time (1-12)
|
||||
# \s - Seconds of the current time
|
||||
# \t - Product type (Percona, MySQL, MariaDB, TiDB)
|
||||
# \A - DSN alias name (from the [alias_dsn] section)
|
||||
# \u - Username
|
||||
# \x1b[...m - insert ANSI escape sequence
|
||||
prompt = "\t \u@\h:\d> "
|
||||
prompt_continuation = ->
|
||||
|
||||
# Skip intro info on startup and outro info on exit
|
||||
less_chatty = True
|
||||
|
||||
# Use alias from --login-path instead of host name in prompt
|
||||
login_path_as_host = False
|
||||
|
||||
# Cause result sets to be displayed vertically if they are too wide for the current window,
|
||||
# and using normal tabular format otherwise. (This applies to statements terminated by ; or \G.)
|
||||
auto_vertical_output = False
|
||||
|
||||
# keyword casing preference. Possible values "lower", "upper", "auto"
|
||||
keyword_casing = auto
|
||||
|
||||
# disabled pager on startup
|
||||
enable_pager = True
|
||||
|
||||
# Custom colors for the completion menu, toolbar, etc.
|
||||
[colors]
|
||||
completion-menu.completion.current = "bg:#ffffff #000000"
|
||||
completion-menu.completion = "bg:#008888 #ffffff"
|
||||
completion-menu.meta.completion.current = "bg:#44aaaa #000000"
|
||||
completion-menu.meta.completion = "bg:#448888 #ffffff"
|
||||
completion-menu.multi-column-meta = "bg:#aaffff #000000"
|
||||
scrollbar.arrow = "bg:#003333"
|
||||
scrollbar = "bg:#00aaaa"
|
||||
selected = "#ffffff bg:#6666aa"
|
||||
search = "#ffffff bg:#4444aa"
|
||||
search.current = "#ffffff bg:#44aa44"
|
||||
bottom-toolbar = "bg:#222222 #aaaaaa"
|
||||
bottom-toolbar.off = "bg:#222222 #888888"
|
||||
bottom-toolbar.on = "bg:#222222 #ffffff"
|
||||
search-toolbar = noinherit bold
|
||||
search-toolbar.text = nobold
|
||||
system-toolbar = noinherit bold
|
||||
arg-toolbar = noinherit bold
|
||||
arg-toolbar.text = nobold
|
||||
bottom-toolbar.transaction.valid = "bg:#222222 #00ff5f bold"
|
||||
bottom-toolbar.transaction.failed = "bg:#222222 #ff005f bold"
|
||||
|
||||
# style classes for colored table output
|
||||
output.header = "#00ff5f bold"
|
||||
output.odd-row = ""
|
||||
output.even-row = ""
|
||||
output.null = "#808080"
|
||||
|
||||
# SQL syntax highlighting overrides
|
||||
# sql.comment = 'italic #408080'
|
||||
# sql.comment.multi-line = ''
|
||||
# sql.comment.single-line = ''
|
||||
# sql.comment.optimizer-hint = ''
|
||||
# sql.escape = 'border:#FF0000'
|
||||
# sql.keyword = 'bold #008000'
|
||||
# sql.datatype = 'nobold #B00040'
|
||||
# sql.literal = ''
|
||||
# sql.literal.date = ''
|
||||
# sql.symbol = ''
|
||||
# sql.quoted-schema-object = ''
|
||||
# sql.quoted-schema-object.escape = ''
|
||||
# sql.constant = '#880000'
|
||||
# sql.function = '#0000FF'
|
||||
# sql.variable = '#19177C'
|
||||
# sql.number = '#666666'
|
||||
# sql.number.binary = ''
|
||||
# sql.number.float = ''
|
||||
# sql.number.hex = ''
|
||||
# sql.number.integer = ''
|
||||
# sql.operator = '#666666'
|
||||
# sql.punctuation = ''
|
||||
# sql.string = '#BA2121'
|
||||
# sql.string.double-quouted = ''
|
||||
# sql.string.escape = 'bold #BB6622'
|
||||
# sql.string.single-quoted = ''
|
||||
# sql.whitespace = ''
|
||||
|
||||
# Favorite queries.
|
||||
[favorite_queries]
|
||||
check = 'select "✔"'
|
||||
|
||||
# Use the -d option to reference a DSN.
|
||||
# Special characters in passwords and other strings can be escaped with URL encoding.
|
||||
[alias_dsn]
|
||||
# example_dsn = mysql://[user[:password]@][host][:port][/dbname]
|
||||
|
|
|
@ -19,7 +19,7 @@ def test_ctor(refresher):
|
|||
assert len(refresher.refreshers) > 0
|
||||
actual_handlers = list(refresher.refreshers.keys())
|
||||
expected_handlers = ['databases', 'schemata', 'tables', 'users', 'functions',
|
||||
'special_commands', 'show_commands']
|
||||
'special_commands', 'show_commands', 'keywords']
|
||||
assert expected_handlers == actual_handlers
|
||||
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ def test_empty_string_completion(completer, complete_event):
|
|||
result = list(completer.get_completions(
|
||||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list(map(Completion, sorted(completer.all_completions)))
|
||||
assert result == list(map(Completion, completer.all_completions))
|
||||
|
||||
|
||||
def test_select_keyword_completion(completer, complete_event):
|
||||
|
@ -39,9 +39,7 @@ def test_function_name_completion(completer, complete_event):
|
|||
result = list(completer.get_completions(
|
||||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='MASTER', start_position=-2),
|
||||
Completion(text='MAX', start_position=-2)])
|
||||
assert sorted(x.text for x in result) == ["MASTER", "MAX"]
|
||||
|
||||
|
||||
def test_column_name_completion(completer, complete_event):
|
||||
|
@ -50,7 +48,7 @@ def test_column_name_completion(completer, complete_event):
|
|||
result = list(completer.get_completions(
|
||||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list(map(Completion, sorted(completer.all_completions)))
|
||||
assert result == list(map(Completion, completer.all_completions))
|
||||
|
||||
|
||||
def test_special_name_completion(completer, complete_event):
|
||||
|
|
|
@ -55,8 +55,8 @@ def test_empty_string_completion(completer, complete_event):
|
|||
completer.get_completions(
|
||||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert list(map(Completion, sorted(completer.keywords) +
|
||||
sorted(completer.special_commands))) == result
|
||||
assert list(map(Completion, completer.keywords +
|
||||
completer.special_commands)) == result
|
||||
|
||||
|
||||
def test_select_keyword_completion(completer, complete_event):
|
||||
|
@ -74,10 +74,10 @@ def test_table_completion(completer, complete_event):
|
|||
result = completer.get_completions(
|
||||
Document(text=text, cursor_position=position), complete_event)
|
||||
assert list(result) == list([
|
||||
Completion(text='`réveillé`', start_position=0),
|
||||
Completion(text='`select`', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='users', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='`select`', start_position=0),
|
||||
Completion(text='`réveillé`', start_position=0),
|
||||
])
|
||||
|
||||
|
||||
|
@ -106,9 +106,9 @@ def test_suggested_column_names(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0),
|
||||
] +
|
||||
list(map(Completion, completer.functions)) +
|
||||
|
@ -132,9 +132,9 @@ def test_suggested_column_names_in_function(completer, complete_event):
|
|||
complete_event)
|
||||
assert list(result) == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)])
|
||||
|
||||
|
||||
|
@ -153,9 +153,9 @@ def test_suggested_column_names_with_table_dot(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)])
|
||||
|
||||
|
||||
|
@ -174,9 +174,9 @@ def test_suggested_column_names_with_alias(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)])
|
||||
|
||||
|
||||
|
@ -196,9 +196,9 @@ def test_suggested_multiple_column_names(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)] +
|
||||
list(map(Completion, completer.functions)) +
|
||||
[Completion(text='u', start_position=0)] +
|
||||
|
@ -221,9 +221,9 @@ def test_suggested_multiple_column_names_with_alias(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)])
|
||||
|
||||
|
||||
|
@ -243,9 +243,9 @@ def test_suggested_multiple_column_names_with_dot(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='email', start_position=0),
|
||||
Completion(text='first_name', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='last_name', start_position=0)])
|
||||
|
||||
|
||||
|
@ -256,8 +256,9 @@ def test_suggested_aliases_after_on(completer, complete_event):
|
|||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='u', start_position=0),
|
||||
Completion(text='o', start_position=0),
|
||||
Completion(text='u', start_position=0)])
|
||||
])
|
||||
|
||||
|
||||
def test_suggested_aliases_after_on_right_side(completer, complete_event):
|
||||
|
@ -268,8 +269,9 @@ def test_suggested_aliases_after_on_right_side(completer, complete_event):
|
|||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='u', start_position=0),
|
||||
Completion(text='o', start_position=0),
|
||||
Completion(text='u', start_position=0)])
|
||||
])
|
||||
|
||||
|
||||
def test_suggested_tables_after_on(completer, complete_event):
|
||||
|
@ -279,8 +281,9 @@ def test_suggested_tables_after_on(completer, complete_event):
|
|||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='users', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='users', start_position=0)])
|
||||
])
|
||||
|
||||
|
||||
def test_suggested_tables_after_on_right_side(completer, complete_event):
|
||||
|
@ -291,8 +294,9 @@ def test_suggested_tables_after_on_right_side(completer, complete_event):
|
|||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='users', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='users', start_position=0)])
|
||||
])
|
||||
|
||||
|
||||
def test_table_names_after_from(completer, complete_event):
|
||||
|
@ -302,10 +306,10 @@ def test_table_names_after_from(completer, complete_event):
|
|||
Document(text=text, cursor_position=position),
|
||||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='`réveillé`', start_position=0),
|
||||
Completion(text='`select`', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='users', start_position=0),
|
||||
Completion(text='orders', start_position=0),
|
||||
Completion(text='`select`', start_position=0),
|
||||
Completion(text='`réveillé`', start_position=0),
|
||||
])
|
||||
|
||||
|
||||
|
@ -317,12 +321,12 @@ def test_auto_escaped_col_names(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == [
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='`ABC`', start_position=0),
|
||||
Completion(text='`insert`', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='`insert`', start_position=0),
|
||||
Completion(text='`ABC`', start_position=0),
|
||||
] + \
|
||||
list(map(Completion, completer.functions)) + \
|
||||
[Completion(text='`select`', start_position=0)] + \
|
||||
[Completion(text='select', start_position=0)] + \
|
||||
list(map(Completion, completer.keywords))
|
||||
|
||||
|
||||
|
@ -334,9 +338,9 @@ def test_un_escaped_table_names(completer, complete_event):
|
|||
complete_event))
|
||||
assert result == list([
|
||||
Completion(text='*', start_position=0),
|
||||
Completion(text='`ABC`', start_position=0),
|
||||
Completion(text='`insert`', start_position=0),
|
||||
Completion(text='id', start_position=0),
|
||||
Completion(text='`insert`', start_position=0),
|
||||
Completion(text='`ABC`', start_position=0),
|
||||
] +
|
||||
list(map(Completion, completer.functions)) +
|
||||
[Completion(text='réveillé', start_position=0)] +
|
||||
|
|
|
@ -276,7 +276,8 @@ def test_multiple_results(executor):
|
|||
@pytest.mark.parametrize(
|
||||
'version_string, species, parsed_version_string, version',
|
||||
(
|
||||
('5.7.25-TiDB-v6.1.0','TiDB', '5.7.25', 50725),
|
||||
('5.7.25-TiDB-v6.1.0','TiDB', '6.1.0', 60100),
|
||||
('8.0.11-TiDB-v7.2.0-alpha-69-g96e9e68daa', 'TiDB', '7.2.0', 70200),
|
||||
('5.7.32-35', 'Percona', '5.7.32', 50732),
|
||||
('5.7.32-0ubuntu0.18.04.1', 'MySQL', '5.7.32', 50732),
|
||||
('10.5.8-MariaDB-1:10.5.8+maria~focal', 'MariaDB', '10.5.8', 100508),
|
||||
|
|
|
@ -102,7 +102,7 @@ def test_sql_output(mycli):
|
|||
mycli.formatter.query = "SELECT * FROM `table`"
|
||||
output = mycli.format_output(None, FakeCursor(), headers)
|
||||
assert "\n".join(output) == dedent('''\
|
||||
INSERT INTO `table` (`letters`, `number`, `optional`, `float`, `binary`) VALUES
|
||||
INSERT INTO table (`letters`, `number`, `optional`, `float`, `binary`) VALUES
|
||||
('abc', 1, NULL, 10.0e0, X'aa')
|
||||
, ('d', 456, '1', 0.5e0, X'aabb')
|
||||
;''')
|
||||
|
@ -112,7 +112,7 @@ def test_sql_output(mycli):
|
|||
mycli.formatter.query = "SELECT * FROM `database`.`table`"
|
||||
output = mycli.format_output(None, FakeCursor(), headers)
|
||||
assert "\n".join(output) == dedent('''\
|
||||
INSERT INTO `database`.`table` (`letters`, `number`, `optional`, `float`, `binary`) VALUES
|
||||
INSERT INTO database.table (`letters`, `number`, `optional`, `float`, `binary`) VALUES
|
||||
('abc', 1, NULL, 10.0e0, X'aa')
|
||||
, ('d', 456, '1', 0.5e0, X'aabb')
|
||||
;''')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue