diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2020-06-11 20:12:35 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-06-12 12:07:43 +0200 |
| commit | 9e8edc1e5511f128dec6bcd70a10ebd263b76280 (patch) | |
| tree | 7e8b5d42b733f1372330a49292aefeca43012282 | |
| parent | 2928019e0ccd8e9c7d3a3fba7722a7af87018e5d (diff) | |
Fixed #31491 -- Allowed 'password' option in DATABASES['OPTIONS'] on MySQL.
| -rw-r--r-- | django/db/backends/mysql/client.py | 9 | ||||
| -rw-r--r-- | tests/dbshell/test_mysql.py | 16 |
2 files changed, 22 insertions, 3 deletions
diff --git a/django/db/backends/mysql/client.py b/django/db/backends/mysql/client.py index e5b6a59fb2..904c450cef 100644 --- a/django/db/backends/mysql/client.py +++ b/django/db/backends/mysql/client.py @@ -11,7 +11,10 @@ class DatabaseClient(BaseDatabaseClient): args = [cls.executable_name] db = settings_dict['OPTIONS'].get('db', settings_dict['NAME']) user = settings_dict['OPTIONS'].get('user', settings_dict['USER']) - passwd = settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD']) + password = settings_dict['OPTIONS'].get( + 'password', + settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD']) + ) host = settings_dict['OPTIONS'].get('host', settings_dict['HOST']) port = settings_dict['OPTIONS'].get('port', settings_dict['PORT']) server_ca = settings_dict['OPTIONS'].get('ssl', {}).get('ca') @@ -24,8 +27,8 @@ class DatabaseClient(BaseDatabaseClient): args += ["--defaults-file=%s" % defaults_file] if user: args += ["--user=%s" % user] - if passwd: - args += ["--password=%s" % passwd] + if password: + args += ["--password=%s" % password] if host: if '/' in host: args += ["--socket=%s" % host] diff --git a/tests/dbshell/test_mysql.py b/tests/dbshell/test_mysql.py index 91c1a6cd50..95faa21647 100644 --- a/tests/dbshell/test_mysql.py +++ b/tests/dbshell/test_mysql.py @@ -43,6 +43,22 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): }, })) + def test_options_password(self): + self.assertEqual( + [ + 'mysql', '--user=someuser', '--password=optionpassword', + '--host=somehost', '--port=444', 'somedbname', + ], + self.get_command_line_arguments({ + 'NAME': 'somedbname', + 'USER': 'someuser', + 'PASSWORD': 'settingpassword', + 'HOST': 'somehost', + 'PORT': 444, + 'OPTIONS': {'password': 'optionpassword'}, + }), + ) + def test_can_connect_using_sockets(self): self.assertEqual( ['mysql', '--user=someuser', '--password=somepassword', |
