Skip to content

Commit 9e8edc1

Browse files
hramezanifelixxm
authored andcommitted
Fixed #31491 -- Allowed 'password' option in DATABASES['OPTIONS'] on MySQL.
1 parent 2928019 commit 9e8edc1

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

django/db/backends/mysql/client.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ def settings_to_cmd_args(cls, settings_dict, parameters):
1111
args = [cls.executable_name]
1212
db = settings_dict['OPTIONS'].get('db', settings_dict['NAME'])
1313
user = settings_dict['OPTIONS'].get('user', settings_dict['USER'])
14-
passwd = settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD'])
14+
password = settings_dict['OPTIONS'].get(
15+
'password',
16+
settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD'])
17+
)
1518
host = settings_dict['OPTIONS'].get('host', settings_dict['HOST'])
1619
port = settings_dict['OPTIONS'].get('port', settings_dict['PORT'])
1720
server_ca = settings_dict['OPTIONS'].get('ssl', {}).get('ca')
@@ -24,8 +27,8 @@ def settings_to_cmd_args(cls, settings_dict, parameters):
2427
args += ["--defaults-file=%s" % defaults_file]
2528
if user:
2629
args += ["--user=%s" % user]
27-
if passwd:
28-
args += ["--password=%s" % passwd]
30+
if password:
31+
args += ["--password=%s" % password]
2932
if host:
3033
if '/' in host:
3134
args += ["--socket=%s" % host]

tests/dbshell/test_mysql.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,22 @@ def test_options_override_settings_proper_values(self):
4343
},
4444
}))
4545

46+
def test_options_password(self):
47+
self.assertEqual(
48+
[
49+
'mysql', '--user=someuser', '--password=optionpassword',
50+
'--host=somehost', '--port=444', 'somedbname',
51+
],
52+
self.get_command_line_arguments({
53+
'NAME': 'somedbname',
54+
'USER': 'someuser',
55+
'PASSWORD': 'settingpassword',
56+
'HOST': 'somehost',
57+
'PORT': 444,
58+
'OPTIONS': {'password': 'optionpassword'},
59+
}),
60+
)
61+
4662
def test_can_connect_using_sockets(self):
4763
self.assertEqual(
4864
['mysql', '--user=someuser', '--password=somepassword',

0 commit comments

Comments
 (0)