Skip to content

Commit

Permalink
Fixed #31491 -- Allowed 'password' option in DATABASES['OPTIONS'] on …
Browse files Browse the repository at this point in the history
…MySQL.
  • Loading branch information
hramezani authored and felixxm committed Jun 12, 2020
1 parent 2928019 commit 9e8edc1
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
9 changes: 6 additions & 3 deletions django/db/backends/mysql/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ def settings_to_cmd_args(cls, settings_dict, parameters):
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')
Expand All @@ -24,8 +27,8 @@ def settings_to_cmd_args(cls, settings_dict, parameters):
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]
Expand Down
16 changes: 16 additions & 0 deletions tests/dbshell/test_mysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,22 @@ def test_options_override_settings_proper_values(self):
},
}))

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',
Expand Down

0 comments on commit 9e8edc1

Please sign in to comment.