diff options
Diffstat (limited to 'tests/dbshell/test_mysql.py')
| -rw-r--r-- | tests/dbshell/test_mysql.py | 120 |
1 files changed, 84 insertions, 36 deletions
diff --git a/tests/dbshell/test_mysql.py b/tests/dbshell/test_mysql.py index e09644962b..374c466059 100644 --- a/tests/dbshell/test_mysql.py +++ b/tests/dbshell/test_mysql.py @@ -3,32 +3,52 @@ from django.test import SimpleTestCase class MySqlDbshellCommandTestCase(SimpleTestCase): + def settings_to_cmd_args_env(self, settings_dict, parameters=None): + if parameters is None: + parameters = [] + return DatabaseClient.settings_to_cmd_args_env(settings_dict, parameters) def test_fails_with_keyerror_on_incomplete_config(self): with self.assertRaises(KeyError): - self.get_command_line_arguments({}) + self.settings_to_cmd_args_env({}) def test_basic_params_specified_in_settings(self): + expected_args = [ + 'mysql', + '--user=someuser', + '--password=somepassword', + '--host=somehost', + '--port=444', + 'somedbname', + ] + expected_env = None self.assertEqual( - ['mysql', '--user=someuser', '--password=somepassword', - '--host=somehost', '--port=444', 'somedbname'], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'somedbname', 'USER': 'someuser', 'PASSWORD': 'somepassword', 'HOST': 'somehost', 'PORT': 444, 'OPTIONS': {}, - })) + }), + (expected_args, expected_env), + ) def test_options_override_settings_proper_values(self): settings_port = 444 options_port = 555 self.assertNotEqual(settings_port, options_port, 'test pre-req') + expected_args = [ + 'mysql', + '--user=optionuser', + '--password=optionpassword', + '--host=optionhost', + '--port=%s' % options_port, + 'optiondbname', + ] + expected_env = None self.assertEqual( - ['mysql', '--user=optionuser', '--password=optionpassword', - '--host=optionhost', '--port={}'.format(options_port), 'optiondbname'], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'settingdbname', 'USER': 'settinguser', 'PASSWORD': 'settingpassword', @@ -41,15 +61,22 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): 'host': 'optionhost', 'port': options_port, }, - })) + }), + (expected_args, expected_env), + ) def test_options_password(self): + expected_args = [ + 'mysql', + '--user=someuser', + '--password=optionpassword', + '--host=somehost', + '--port=444', + 'somedbname', + ] + expected_env = None self.assertEqual( - [ - 'mysql', '--user=someuser', '--password=optionpassword', - '--host=somehost', '--port=444', 'somedbname', - ], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'somedbname', 'USER': 'someuser', 'PASSWORD': 'settingpassword', @@ -57,16 +84,22 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): 'PORT': 444, 'OPTIONS': {'password': 'optionpassword'}, }), + (expected_args, expected_env), ) def test_options_charset(self): + expected_args = [ + 'mysql', + '--user=someuser', + '--password=somepassword', + '--host=somehost', + '--port=444', + '--default-character-set=utf8', + 'somedbname', + ] + expected_env = None self.assertEqual( - [ - 'mysql', '--user=someuser', '--password=somepassword', - '--host=somehost', '--port=444', - '--default-character-set=utf8', 'somedbname', - ], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'somedbname', 'USER': 'someuser', 'PASSWORD': 'somepassword', @@ -74,27 +107,45 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): 'PORT': 444, 'OPTIONS': {'charset': 'utf8'}, }), + (expected_args, expected_env), ) def test_can_connect_using_sockets(self): + expected_args = [ + 'mysql', + '--user=someuser', + '--password=somepassword', + '--socket=/path/to/mysql.socket.file', + 'somedbname', + ] + expected_env = None self.assertEqual( - ['mysql', '--user=someuser', '--password=somepassword', - '--socket=/path/to/mysql.socket.file', 'somedbname'], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'somedbname', 'USER': 'someuser', 'PASSWORD': 'somepassword', 'HOST': '/path/to/mysql.socket.file', 'PORT': None, 'OPTIONS': {}, - })) + }), + (expected_args, expected_env), + ) def test_ssl_certificate_is_added(self): + expected_args = [ + 'mysql', + '--user=someuser', + '--password=somepassword', + '--host=somehost', + '--port=444', + '--ssl-ca=sslca', + '--ssl-cert=sslcert', + '--ssl-key=sslkey', + 'somedbname', + ] + expected_env = None self.assertEqual( - ['mysql', '--user=someuser', '--password=somepassword', - '--host=somehost', '--port=444', '--ssl-ca=sslca', - '--ssl-cert=sslcert', '--ssl-key=sslkey', 'somedbname'], - self.get_command_line_arguments({ + self.settings_to_cmd_args_env({ 'NAME': 'somedbname', 'USER': 'someuser', 'PASSWORD': 'somepassword', @@ -107,12 +158,13 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): 'key': 'sslkey', }, }, - })) + }), + (expected_args, expected_env), + ) def test_parameters(self): self.assertEqual( - ['mysql', 'somedbname', '--help'], - self.get_command_line_arguments( + self.settings_to_cmd_args_env( { 'NAME': 'somedbname', 'USER': None, @@ -123,9 +175,5 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): }, ['--help'], ), + (['mysql', 'somedbname', '--help'], None), ) - - def get_command_line_arguments(self, connection_settings, parameters=None): - if parameters is None: - parameters = [] - return DatabaseClient.settings_to_cmd_args(connection_settings, parameters) |
