summaryrefslogtreecommitdiff
path: root/dev-db/mycli
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-12-14 13:26:14 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-12-14 13:26:14 +0000
commit6abbf81ef2f298e3221ff5e67a1f3c5f23958212 (patch)
tree25413d1cb3a0cbfe36029db32398c0f333609215 /dev-db/mycli
parent9c417bacd51da6d8b57fa9f37425161d30d4b95b (diff)
gentoo resync : 14.12.2020
Diffstat (limited to 'dev-db/mycli')
-rw-r--r--dev-db/mycli/Manifest5
-rw-r--r--dev-db/mycli/files/mycli-1.22.2_p20201026.patch470
-rw-r--r--dev-db/mycli/mycli-1.22.2_p20201026.ebuild53
-rw-r--r--dev-db/mycli/mycli-9999.ebuild30
4 files changed, 542 insertions, 16 deletions
diff --git a/dev-db/mycli/Manifest b/dev-db/mycli/Manifest
index 40c01344cd89..42a538341038 100644
--- a/dev-db/mycli/Manifest
+++ b/dev-db/mycli/Manifest
@@ -1,7 +1,10 @@
AUX mycli-1.21.1-fix-test-install.patch 456 BLAKE2B 3f4eafe405a2151b1b2897ac60347a5fdce45747f927a40367943ad78ef96753ad106bdefe516b76946fa509b17a31d9423cf0b5cf311e79174ce5e4f6320428 SHA512 90c53b12baee1339cdc629615a021ff0290e6350f3358491cd163c4405d49be02340a56a73475623a6b49877cef53e3c5bd9aa93897aa91769a402e8f4c0b88a
+AUX mycli-1.22.2_p20201026.patch 17058 BLAKE2B b9e436fab98be62fae2b4ff549914d9431520a179af946db8a48255d1f7c2e36f90b91d4adc698c7b84095d00483f14a22f5e0c99ab022a1ad6364601482db63 SHA512 0e7b5cd9e687056514447e50df1310090d04f50666455c87ae32cf2ffb2935e923d93a8343d44adb2393d696238cdda5f215535267dca45e9861a8d86a0a21c3
DIST mycli-1.20.1.tar.gz 265264 BLAKE2B d00b1713132609b0a5ec6e8b78785fdab5c6b4db5937bc0b9bc69ddde90ad3dc75aeb99ccf6b5e7fe5e78e9bf4819f03fb454825e5182bc5d2c44356032343d1 SHA512 82ee642b2a4c158b0e2ea275941650125e15004ec1c70b2ab90ae0825090efccb4910a14fd46bcdf795a74adba5689b46de5668447308de63d1cbbbe2e6b0e9d
DIST mycli-1.21.1.tar.gz 267646 BLAKE2B e0678974949ae219236b89fbe9ebdacfee9c1efc8f92853c937150dbb841680664432e9f5c79181545df8b3321480cf784e45a83139351cc93256d26dcdd66f0 SHA512 beb3888ff8abc2a79e591516d7f0f76d0c18f186bd0dca3b4aadcf93b3045de53ac7f135553ad509273c85ea364e81df5dcadf9eacf1dbef8ceff7345aa5ed6d
+DIST mycli-1.22.2_p20201026.tar.gz 269338 BLAKE2B 42f4349e65a43829691fd7fa0fa1a57968cf34ffba04156ae221d7a2713179826fc09903e45b6f05fbf05688f956a9cd95e87393179992378766b3a3a6ef9c6e SHA512 70d68d7517322b28783c324d463664c2794ba26cc78e0eee056891ce43dbce57c4dd9c13982ac2976af07ff1fa3d4552cb22bf42b9c7885c93483ba86b873636
EBUILD mycli-1.20.1.ebuild 1285 BLAKE2B fea26ada4e62c0d97237d8e28076d7ce4ccd818e6e3c38b32c6f4b36c35b0e4bebda5d53972120306a6f14d8d30aec13f4ecc4967b2871a154014a7621a2e034 SHA512 a85982ab2b7751ed4e2fe180920fb3edf8118cbabe37b255e689b6e40c9350d5674109c4d6dc4447b7e7cc295fc8c2e51e05d336464fcb3b8b48801964837b11
EBUILD mycli-1.21.1-r1.ebuild 1579 BLAKE2B 374463b3c1671a25868ef4cf0e58496e0c15912088b225518eb8d36cb009b12245dcab81e7c9e92a6fd1a924eee6e979a4999f3169ec73aeb918d64a393e732a SHA512 e1ed0950ee2bd525623c59e8a4b2e7abc96baec3ce0bf400ee8dd26075da2b622ba6f628ecbc4e649abbe54af588477312feba6b2beed7521ca8c37feee2fb2b
-EBUILD mycli-9999.ebuild 1560 BLAKE2B 624da8139f363002c3ffd6f045a349cec30a7e3d8917bf4b2a482969eaf8b594da7996f7f164ac1883ce44819e67733fc9ac6e91e8f3a3c8a95a28caa879fcfc SHA512 84f246aba80728a62e11267ea415c00e898a3ac1041eaa8508f05672f029157cf459e2199a25ce104aa8cbbd16e1f36560046e3381f42a2e89f1166b15f3dfcd
+EBUILD mycli-1.22.2_p20201026.ebuild 1663 BLAKE2B 3d543f3b947bcff069a5ff4153610ee03cd8fe6eb8a8d23276151e957a22a0f8bb6c5390ade1069d6a26fc45d753e4b24d29547b0c51768b9f7859c2bee8cee5 SHA512 a785dd24754d587311eb130579ebd7be908ba39ed75f7a9f95a6f35a66cff9b20842c7739a413ae83aee6661813abad63cf1e923a3602bbe649cc22a1d9b9f68
+EBUILD mycli-9999.ebuild 1545 BLAKE2B 2893ca77c6badba2f7654a87af386a01e40609ca3c8e927b1b38dfbb6652f8b64a96f018f53c339c767fccc5672c6ba9f5fbe4205a3693c84cbec4bcbcc3e3fa SHA512 4217c8e9723544d5d423ffb065803e941b88dd0976714cd19de26c3d8a18b6ab8a27177e26664f3262c94d2fc16738b2b603469adac17084a666f5a3333111ba
MISC metadata.xml 406 BLAKE2B d46b17f9f36fc9851f36d4deadf52ca52d6df621245e521f66386ff3deed3b863188875dd2207c3cf78474cd8a04aebf03dad6564251581b8f9d09fb7bdf5ba8 SHA512 b88e9469cfd9287df46b84c62b27fd60f3cf84abfe93aba4ca7b46d668b0ed855c17ccccd95a49bc102bc2d9c054846ff33e094fe0351c598a9b55f494618e57
diff --git a/dev-db/mycli/files/mycli-1.22.2_p20201026.patch b/dev-db/mycli/files/mycli-1.22.2_p20201026.patch
new file mode 100644
index 000000000000..3e7c719bf396
--- /dev/null
+++ b/dev-db/mycli/files/mycli-1.22.2_p20201026.patch
@@ -0,0 +1,470 @@
+diff --git a/.travis.yml b/.travis.yml
+index 0afb5cc..182dea7 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -12,7 +12,7 @@ matrix:
+
+ install:
+ - pip install -r requirements-dev.txt
+- - pip install -e .
++ - pip install --no-cache-dir -e .
+ - sudo rm -f /etc/mysql/conf.d/performance-schema.cnf
+ - sudo service mysql restart
+
+diff --git a/README.md b/README.md
+index efe804d..d5a0687 100644
+--- a/README.md
++++ b/README.md
+@@ -96,6 +96,7 @@ $ sudo apt-get install mycli # Only on debian or ubuntu
+ --local-infile BOOLEAN Enable/disable LOAD DATA LOCAL INFILE.
+ --login-path TEXT Read this path from the login file.
+ -e, --execute TEXT Execute command and quit.
++ --init-command TEXT SQL statement to execute after connecting.
+ --help Show this message and exit.
+
+ Features
+diff --git a/changelog.md b/changelog.md
+index a4fea35..508c801 100644
+--- a/changelog.md
++++ b/changelog.md
+@@ -1,9 +1,22 @@
++TBD
++===
++
++Features:
++---------
++
++* Add an option `--init-command` to execute SQL after connecting (Thanks: [KITAGAWA Yasutaka]).
++
++Bug Fixes:
++----------
++* Fixed compatibility with sqlparse 0.4 (Thanks: [mtorromeo]).
++
+ 1.22.2
+ ======
+
+ Bug Fixes:
+ ----------
+-* Make the `pwd` module optional.
++
++* Make the `pwd` module optional.
+
+ 1.22.1
+ ======
+@@ -18,6 +31,11 @@ Features:
+ * Add an option `--list-ssh-config` to list ssh configurations.
+ * Add an option `--ssh-config-path` to choose ssh configuration path.
+
++Bug Fixes:
++----------
++
++* Fix specifying empty password with `--password=''` when config file has a password set (Thanks: [Zach DeCook]).
++
+
+ 1.21.1
+ ======
+@@ -28,6 +46,7 @@ Bug Fixes:
+
+ * Fix broken auto-completion for favorite queries (Thanks: [Amjith]).
+ * Fix undefined variable exception when running with --no-warn (Thanks: [Georgy Frolov])
++* Support setting color for null value (Thanks: [laixintao])
+
+ 1.21.0
+ ======
+@@ -768,3 +787,6 @@ Bug Fixes:
+ [François Pietka]: https://github.com/fpietka
+ [Frederic Aoustin]: https://github.com/fraoustin
+ [Georgy Frolov]: https://github.com/pasenor
++[Zach DeCook]: https://zachdecook.com
++[laixintao]: https://github.com/laixintao
++[mtorromeo]: https://github.com/mtorromeo
+diff --git a/mycli/AUTHORS b/mycli/AUTHORS
+index b3636d9..a1204b0 100644
+--- a/mycli/AUTHORS
++++ b/mycli/AUTHORS
+@@ -72,6 +72,10 @@ Contributors:
+ * Jakub Boukal
+ * Takeshi D. Itoh
+ * laixintao
++ * Zach DeCook
++ * kevinhwang91
++ * KITAGAWA Yasutaka
++ * Massimiliano Torromeo
+
+ Creator:
+ --------
+diff --git a/mycli/clistyle.py b/mycli/clistyle.py
+index c94f793..293f0f4 100644
+--- a/mycli/clistyle.py
++++ b/mycli/clistyle.py
+@@ -34,6 +34,7 @@ TOKEN_TO_PROMPT_STYLE = {
+ Token.Output.Header: 'output.header',
+ Token.Output.OddRow: 'output.odd-row',
+ Token.Output.EvenRow: 'output.even-row',
++ Token.Output.Null: 'output.null',
+ Token.Prompt: 'prompt',
+ Token.Continuation: 'continuation',
+ }
+diff --git a/mycli/main.py b/mycli/main.py
+index 03797a0..dffd724 100755
+--- a/mycli/main.py
++++ b/mycli/main.py
+@@ -98,7 +98,7 @@ class MyCli(object):
+ xdg_config_home = "~/.config"
+ system_config_files = [
+ '/etc/myclirc',
+- os.path.join(xdg_config_home, "mycli", "myclirc")
++ os.path.join(os.path.expanduser(xdg_config_home), "mycli", "myclirc")
+ ]
+
+ default_config_file = os.path.join(PACKAGE_ROOT, 'myclirc')
+@@ -152,7 +152,7 @@ class MyCli(object):
+ c['main'].as_bool('auto_vertical_output')
+
+ # Write user config if system config wasn't the last config loaded.
+- if c.filename not in self.system_config_files:
++ if c.filename not in self.system_config_files and not os.path.exists(myclirc):
+ write_default_config(self.default_config_file, myclirc)
+
+ # audit log
+@@ -363,7 +363,7 @@ class MyCli(object):
+ def connect(self, database='', user='', passwd='', host='', port='',
+ socket='', charset='', local_infile='', ssl='',
+ ssh_user='', ssh_host='', ssh_port='',
+- ssh_password='', ssh_key_filename=''):
++ ssh_password='', ssh_key_filename='', init_command=''):
+
+ cnf = {'database': None,
+ 'user': None,
+@@ -396,7 +396,7 @@ class MyCli(object):
+ port = port or cnf['port']
+ ssl = ssl or {}
+
+- passwd = passwd or cnf['password']
++ passwd = passwd if isinstance(passwd, str) else cnf['password']
+ charset = charset or cnf['default-character-set'] or 'utf8'
+
+ # Favor whichever local_infile option is set.
+@@ -420,7 +420,7 @@ class MyCli(object):
+ self.sqlexecute = SQLExecute(
+ database, user, passwd, host, port, socket, charset,
+ local_infile, ssl, ssh_user, ssh_host, ssh_port,
+- ssh_password, ssh_key_filename
++ ssh_password, ssh_key_filename, init_command
+ )
+ except OperationalError as e:
+ if ('Access denied for user' in e.args[1]):
+@@ -429,7 +429,7 @@ class MyCli(object):
+ self.sqlexecute = SQLExecute(
+ database, user, new_passwd, host, port, socket,
+ charset, local_infile, ssl, ssh_user, ssh_host,
+- ssh_port, ssh_password, ssh_key_filename
++ ssh_port, ssh_password, ssh_key_filename, init_command
+ )
+ else:
+ raise e
+@@ -1051,6 +1051,8 @@ class MyCli(object):
+ help='Read this path from the login file.')
+ @click.option('-e', '--execute', type=str,
+ help='Execute command and quit.')
++@click.option('--init-command', type=str,
++ help='SQL statement to execute after connecting.')
+ @click.argument('database', default='', nargs=1)
+ def cli(database, user, host, port, socket, password, dbname,
+ version, verbose, prompt, logfile, defaults_group_suffix,
+@@ -1058,7 +1060,8 @@ def cli(database, user, host, port, socket, password, dbname,
+ ssl_ca, ssl_capath, ssl_cert, ssl_key, ssl_cipher,
+ ssl_verify_server_cert, table, csv, warn, execute, myclirc, dsn,
+ list_dsn, ssh_user, ssh_host, ssh_port, ssh_password,
+- ssh_key_filename, list_ssh_config, ssh_config_path, ssh_config_host):
++ ssh_key_filename, list_ssh_config, ssh_config_path, ssh_config_host,
++ init_command):
+ """A MySQL terminal client with auto-completion and syntax highlighting.
+
+ \b
+@@ -1182,7 +1185,8 @@ def cli(database, user, host, port, socket, password, dbname,
+ ssh_host=ssh_host,
+ ssh_port=ssh_port,
+ ssh_password=ssh_password,
+- ssh_key_filename=ssh_key_filename
++ ssh_key_filename=ssh_key_filename,
++ init_command=init_command
+ )
+
+ mycli.logger.debug('Launch Params: \n'
+diff --git a/mycli/myclirc b/mycli/myclirc
+index 534b201..ba3ea1e 100644
+--- a/mycli/myclirc
++++ b/mycli/myclirc
+@@ -111,6 +111,7 @@ bottom-toolbar.transaction.failed = 'bg:#222222 #ff005f bold'
+ output.header = "#00ff5f bold"
+ output.odd-row = ""
+ output.even-row = ""
++output.null = "#808080"
+
+ # Favorite queries.
+ [favorite_queries]
+diff --git a/mycli/packages/completion_engine.py b/mycli/packages/completion_engine.py
+index 2b19c32..3cff2cc 100644
+--- a/mycli/packages/completion_engine.py
++++ b/mycli/packages/completion_engine.py
+@@ -2,7 +2,6 @@ import os
+ import sys
+ import sqlparse
+ from sqlparse.sql import Comparison, Identifier, Where
+-from sqlparse.compat import text_type
+ from .parseutils import last_word, extract_tables, find_prev_keyword
+ from .special import parse_special_command
+
+@@ -55,7 +54,7 @@ def suggest_type(full_text, text_before_cursor):
+ stmt_start, stmt_end = 0, 0
+
+ for statement in parsed:
+- stmt_len = len(text_type(statement))
++ stmt_len = len(str(statement))
+ stmt_start, stmt_end = stmt_end, stmt_end + stmt_len
+
+ if stmt_end >= current_pos:
+diff --git a/mycli/sqlexecute.py b/mycli/sqlexecute.py
+index c68af0f..7534982 100644
+--- a/mycli/sqlexecute.py
++++ b/mycli/sqlexecute.py
+@@ -42,7 +42,7 @@ class SQLExecute(object):
+
+ def __init__(self, database, user, password, host, port, socket, charset,
+ local_infile, ssl, ssh_user, ssh_host, ssh_port, ssh_password,
+- ssh_key_filename):
++ ssh_key_filename, init_command=None):
+ self.dbname = database
+ self.user = user
+ self.password = password
+@@ -59,12 +59,13 @@ class SQLExecute(object):
+ self.ssh_port = ssh_port
+ self.ssh_password = ssh_password
+ self.ssh_key_filename = ssh_key_filename
++ self.init_command = init_command
+ self.connect()
+
+ def connect(self, database=None, user=None, password=None, host=None,
+ port=None, socket=None, charset=None, local_infile=None,
+ ssl=None, ssh_host=None, ssh_port=None, ssh_user=None,
+- ssh_password=None, ssh_key_filename=None):
++ ssh_password=None, ssh_key_filename=None, init_command=None):
+ db = (database or self.dbname)
+ user = (user or self.user)
+ password = (password or self.password)
+@@ -79,6 +80,7 @@ class SQLExecute(object):
+ ssh_port = (ssh_port or self.ssh_port)
+ ssh_password = (ssh_password or self.ssh_password)
+ ssh_key_filename = (ssh_key_filename or self.ssh_key_filename)
++ init_command = (init_command or self.init_command)
+ _logger.debug(
+ 'Connection DB Params: \n'
+ '\tdatabase: %r'
+@@ -93,9 +95,11 @@ class SQLExecute(object):
+ '\tssh_host: %r'
+ '\tssh_port: %r'
+ '\tssh_password: %r'
+- '\tssh_key_filename: %r',
++ '\tssh_key_filename: %r'
++ '\tinit_command: %r',
+ db, user, host, port, socket, charset, local_infile, ssl,
+- ssh_user, ssh_host, ssh_port, ssh_password, ssh_key_filename
++ ssh_user, ssh_host, ssh_port, ssh_password, ssh_key_filename,
++ init_command
+ )
+ conv = conversions.copy()
+ conv.update({
+@@ -110,12 +114,16 @@ class SQLExecute(object):
+ if ssh_host:
+ defer_connect = True
+
++ client_flag = pymysql.constants.CLIENT.INTERACTIVE
++ if init_command and len(list(special.split_queries(init_command))) > 1:
++ client_flag |= pymysql.constants.CLIENT.MULTI_STATEMENTS
++
+ conn = pymysql.connect(
+ database=db, user=user, password=password, host=host, port=port,
+ unix_socket=socket, use_unicode=True, charset=charset,
+- autocommit=True, client_flag=pymysql.constants.CLIENT.INTERACTIVE,
++ autocommit=True, client_flag=client_flag,
+ local_infile=local_infile, conv=conv, ssl=ssl, program_name="mycli",
+- defer_connect=defer_connect
++ defer_connect=defer_connect, init_command=init_command
+ )
+
+ if ssh_host:
+@@ -146,6 +154,7 @@ class SQLExecute(object):
+ self.socket = socket
+ self.charset = charset
+ self.ssl = ssl
++ self.init_command = init_command
+ # retrieve connection id
+ self.reset_connection_id()
+
+diff --git a/requirements-dev.txt b/requirements-dev.txt
+index 8e206a5..7a38ed5 100644
+--- a/requirements-dev.txt
++++ b/requirements-dev.txt
+@@ -3,8 +3,8 @@ pytest!=3.3.0
+ pytest-cov==2.4.0
+ tox
+ twine==1.12.1
+-behave
+-pexpect
++behave>=1.2.4
++pexpect==3.3
+ coverage==5.0.4
+ codecov==2.0.9
+ autopep8==1.3.3
+diff --git a/setup.py b/setup.py
+index 156cd1a..fbab22e 100755
+--- a/setup.py
++++ b/setup.py
+@@ -24,7 +24,7 @@ install_requirements = [
+ 'sqlparse>=0.3.0,<0.4.0',
+ 'configobj >= 5.0.5',
+ 'cryptography >= 1.0.0',
+- 'cli_helpers[styles] > 1.1.0',
++ 'cli_helpers[styles] >= 2.0.1',
+ ]
+
+
+@@ -65,7 +65,7 @@ class test(TestCommand):
+ def initialize_options(self):
+ TestCommand.initialize_options(self)
+ self.pytest_args = ''
+- self.behave_args = ''
++ self.behave_args = '--no-capture'
+
+ def run_tests(self):
+ unit_test_errno = subprocess.call(
+diff --git a/test/features/environment.py b/test/features/environment.py
+index 1a49dbe..cb35140 100644
+--- a/test/features/environment.py
++++ b/test/features/environment.py
+@@ -16,7 +16,7 @@ def before_all(context):
+ os.environ['LINES'] = "100"
+ os.environ['COLUMNS'] = "100"
+ os.environ['EDITOR'] = 'ex'
+- os.environ['LC_ALL'] = 'en_US.utf8'
++ os.environ['LC_ALL'] = 'en_US.UTF-8'
+ os.environ['PROMPT_TOOLKIT_NO_CPR'] = '1'
+
+ test_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
+@@ -118,11 +118,12 @@ def after_scenario(context, _):
+ host = context.conf['host']
+ dbname = context.currentdb
+ context.cli.expect_exact(
+- '{0}@{1}:{2}> '.format(
++ '{0}@{1}:{2}>'.format(
+ user, host, dbname
+ ),
+ timeout=5
+ )
++ context.cli.sendcontrol('c')
+ context.cli.sendcontrol('d')
+ context.cli.expect_exact(pexpect.EOF, timeout=5)
+
+diff --git a/test/features/steps/crud_database.py b/test/features/steps/crud_database.py
+index a0bfa53..be6dec0 100644
+--- a/test/features/steps/crud_database.py
++++ b/test/features/steps/crud_database.py
+@@ -64,15 +64,13 @@ def step_see_prompt(context):
+ user = context.conf['user']
+ host = context.conf['host']
+ dbname = context.currentdb
+- wrappers.expect_exact(context, '{0}@{1}:{2}> '.format(
+- user, host, dbname), timeout=5)
+- context.atprompt = True
++ wrappers.wait_prompt(context, '{0}@{1}:{2}> '.format(user, host, dbname))
+
+
+ @then('we see help output')
+ def step_see_help(context):
+ for expected_line in context.fixture_data['help_commands.txt']:
+- wrappers.expect_exact(context, expected_line + '\r\n', timeout=1)
++ wrappers.expect_exact(context, expected_line, timeout=1)
+
+
+ @then('we see database created')
+@@ -96,10 +94,7 @@ def step_see_db_dropped_no_default(context):
+ context.currentdb = None
+
+ wrappers.expect_exact(context, 'Query OK, 0 rows affected', timeout=2)
+- wrappers.expect_exact(context, '{0}@{1}:{2}> '.format(
+- user, host, database), timeout=5)
+-
+- context.atprompt = True
++ wrappers.wait_prompt(context, '{0}@{1}:{2}>'.format(user, host, database))
+
+
+ @then('we see database connected')
+diff --git a/test/features/steps/wrappers.py b/test/features/steps/wrappers.py
+index 565ca59..de833dd 100644
+--- a/test/features/steps/wrappers.py
++++ b/test/features/steps/wrappers.py
+@@ -88,7 +88,7 @@ def wait_prompt(context, prompt=None):
+ user = context.conf['user']
+ host = context.conf['host']
+ dbname = context.currentdb
+- prompt = '{0}@{1}:{2}> '.format(
++ prompt = '{0}@{1}:{2}>'.format(
+ user, host, dbname),
+ expect_exact(context, prompt, timeout=5)
+ context.atprompt = True
+diff --git a/test/test_main.py b/test/test_main.py
+index 3f92bd1..707c359 100644
+--- a/test/test_main.py
++++ b/test/test_main.py
+@@ -492,3 +492,37 @@ def test_ssh_config(monkeypatch):
+ MockMyCli.connect_args["ssh_host"] == "arg_host" and \
+ MockMyCli.connect_args["ssh_port"] == 3 and \
+ MockMyCli.connect_args["ssh_key_filename"] == "/path/to/key"
++
++
++@dbtest
++def test_init_command_arg(executor):
++ init_command = "set sql_select_limit=1000"
++ sql = 'show variables like "sql_select_limit";'
++ runner = CliRunner()
++ result = runner.invoke(
++ cli, args=CLI_ARGS + ["--init-command", init_command], input=sql
++ )
++
++ expected = "sql_select_limit\t1000\n"
++ assert result.exit_code == 0
++ assert expected in result.output
++
++
++@dbtest
++def test_init_command_multiple_arg(executor):
++ init_command = 'set sql_select_limit=2000; set max_join_size=20000'
++ sql = (
++ 'show variables like "sql_select_limit";\n'
++ 'show variables like "max_join_size"'
++ )
++ runner = CliRunner()
++ result = runner.invoke(
++ cli, args=CLI_ARGS + ['--init-command', init_command], input=sql
++ )
++
++ expected_sql_select_limit = 'sql_select_limit\t2000\n'
++ expected_max_join_size = 'max_join_size\t20000\n'
++
++ assert result.exit_code == 0
++ assert expected_sql_select_limit in result.output
++ assert expected_max_join_size in result.output
+diff --git a/test/test_tabular_output.py b/test/test_tabular_output.py
+index 7d7d000..c20c7de 100644
+--- a/test/test_tabular_output.py
++++ b/test/test_tabular_output.py
+@@ -16,7 +16,7 @@ from pymysql.constants import FIELD_TYPE
+ @pytest.fixture
+ def mycli():
+ cli = MyCli()
+- cli.connect(None, USER, PASSWORD, HOST, PORT, None)
++ cli.connect(None, USER, PASSWORD, HOST, PORT, None, init_command=None)
+ return cli
+
+
diff --git a/dev-db/mycli/mycli-1.22.2_p20201026.ebuild b/dev-db/mycli/mycli-1.22.2_p20201026.ebuild
new file mode 100644
index 000000000000..45cb7e841de6
--- /dev/null
+++ b/dev-db/mycli/mycli-1.22.2_p20201026.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{3_6,3_7,3_8} )
+DISTUTILS_SINGLE_IMPL=yes
+DISTUTILS_USE_SETUPTOOLS=rdepend
+inherit distutils-r1
+
+MY_PV=$(ver_cut 1-3)
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+DESCRIPTION="CLI for MySQL Database with auto-completion and syntax highlighting"
+
+HOMEPAGE="https://www.mycli.net"
+SRC_URI="https://github.com/dbcli/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ssh test"
+RESTRICT="!test? ( test )"
+RDEPEND="$(python_gen_cond_dep '
+ >=dev-python/cli_helpers-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.6[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/prompt_toolkit-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/prompt_toolkit-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0[${PYTHON_USEDEP}]
+ >=dev-python/pymysql-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.0[${PYTHON_USEDEP}]
+ <dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
+ ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )')
+"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]') )"
+
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}/mycli-1.21.1-fix-test-install.patch" "${FILESDIR}/mycli-1.22.2_p20201026.patch" )
+
+python_test() {
+ pytest --capture=sys \
+ --showlocals \
+ --doctest-modules \
+ --doctest-ignore-import-errors \
+ --ignore=setup.py \
+ --ignore=mycli/magic.py \
+ --ignore=mycli/packages/parseutils.py \
+ --ignore=test/features \
+ --ignore=mycli/packages/paramiko_stub/__init__.py
+}
diff --git a/dev-db/mycli/mycli-9999.ebuild b/dev-db/mycli/mycli-9999.ebuild
index 9fcacbc962c2..baad31d4a090 100644
--- a/dev-db/mycli/mycli-9999.ebuild
+++ b/dev-db/mycli/mycli-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-PYTHON_COMPAT=( python{3_6,3_7} )
+PYTHON_COMPAT=( python{3_6,3_7,3_8} )
DISTUTILS_SINGLE_IMPL=yes
DISTUTILS_USE_SETUPTOOLS=rdepend
EGIT_REPO_URI="https://github.com/dbcli/mycli.git"
@@ -19,24 +19,23 @@ KEYWORDS=""
IUSE="ssh test"
RESTRICT="!test? ( test )"
RDEPEND="$(python_gen_cond_dep '
- >=dev-python/cli_helpers-1.1.0[${PYTHON_MULTI_USEDEP}]
- >=dev-python/click-7.0[${PYTHON_MULTI_USEDEP}]
- >=dev-python/configobj-5.0.6[${PYTHON_MULTI_USEDEP}]
- >=dev-python/cryptography-1.0.0[${PYTHON_MULTI_USEDEP}]
- >=dev-python/prompt_toolkit-3.0.0[${PYTHON_MULTI_USEDEP}]
- <dev-python/prompt_toolkit-4.0.0[${PYTHON_MULTI_USEDEP}]
- >=dev-python/pygments-2.0[${PYTHON_MULTI_USEDEP}]
- >=dev-python/pymysql-0.9.2[${PYTHON_MULTI_USEDEP}]
- >=dev-python/sqlparse-0.3.0[${PYTHON_MULTI_USEDEP}]
- <dev-python/sqlparse-0.4.0[${PYTHON_MULTI_USEDEP}]
- ssh? ( dev-python/paramiko[${PYTHON_MULTI_USEDEP}] )')
+ >=dev-python/cli_helpers-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.6[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/prompt_toolkit-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/prompt_toolkit-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.0[${PYTHON_USEDEP}]
+ >=dev-python/pymysql-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.0[${PYTHON_USEDEP}]
+ <dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
+ ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )')
"
DEPEND="${RDEPEND}"
+BDEPEND="test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]') )"
distutils_enable_tests pytest
-BDEPEND="test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_MULTI_USEDEP}]') )"
-
PATCHES=( "${FILESDIR}/mycli-1.21.1-fix-test-install.patch" )
python_test() {
@@ -47,5 +46,6 @@ python_test() {
--ignore=setup.py \
--ignore=mycli/magic.py \
--ignore=mycli/packages/parseutils.py \
- --ignore=test/features
+ --ignore=test/features \
+ --ignore=mycli/packages/paramiko_stub/__init__.py
}