예제 #1
0
 def test_get_cmd_args_strings(self):
     conn_settings = SETTINGS_DICT
     conn_settings['PASSWORD'] = STRING_PASSWORD
     rds_args = DatabaseClient.settings_to_cmd_args(conn_settings, [])
     mysql_args = MySQLDatabaseClient.settings_to_cmd_args(
         conn_settings, [])
     self.assertEqual(rds_args, mysql_args)
     self.assertEqual(rds_args[2], f'--password={STRING_PASSWORD}')
예제 #2
0
파일: base.py 프로젝트: trudger/django
    def __init__(self, *args, **kwargs):
        super(DatabaseWrapper, self).__init__(*args, **kwargs)

        self.features = DatabaseFeatures(self)
        self.ops = DatabaseOperations(self)
        self.client = DatabaseClient(self)
        self.creation = DatabaseCreation(self)
        self.introspection = DatabaseIntrospection(self)
        self.validation = DatabaseValidation(self)
예제 #3
0
    def __init__(self, *args, **kwargs):
        super(DatabaseWrapper, self).__init__(*args, **kwargs)
        self.server_version = None

        self.features = DatabaseFeatures()
        self.ops = mysqldb_base.DatabaseOperations()
        self.client = DatabaseClient(self)
        self.creation = DatabaseCreation(self)
        self.introspection = DatabaseIntrospection(self)
        self.validation = DatabaseValidation(self)

        self.pool = None
예제 #4
0
    def __init__(self, *args, **kwargs):
        super(DatabaseWrapper, self).__init__(*args, **kwargs)

        self.server_version = None

        self.features = DatabaseFeatures(self)
        self.ops = DatabaseOperations(self)
        self.client = DatabaseClient(self)
        self.creation = DatabaseCreation(self) #数据库创建器, from django.db.backends.mysql.creation import DatabaseCreation
        self.introspection = DatabaseIntrospection(self)

        self.validation = DatabaseValidation(self)
예제 #5
0
 def test_crash_password_does_not_leak(self):
     # The password doesn't leak in an exception that results from a client
     # crash.
     args, env = DatabaseClient.settings_to_cmd_args_env(
         {
             'NAME': 'somedbname',
             'USER': '******',
             'PASSWORD': '******',
             'HOST': 'somehost',
             'PORT': 444,
             'OPTIONS': {},
         },
         [],
     )
     fake_client = Path(__file__).with_name('fake_client.py')
     args[0:1] = [sys.executable, str(fake_client)]
     with self.assertRaises(subprocess.CalledProcessError) as ctx:
         subprocess.run(args, check=True, env=env)
     self.assertNotIn('somepassword', str(ctx.exception))
예제 #6
0
 def test_crash_password_does_not_leak(self):
     # The password doesn't leak in an exception that results from a client
     # crash.
     args, env = DatabaseClient.settings_to_cmd_args_env(
         {
             "NAME": "somedbname",
             "USER": "******",
             "PASSWORD": "******",
             "HOST": "somehost",
             "PORT": 444,
             "OPTIONS": {},
         },
         [],
     )
     if env:
         env = {**os.environ, **env}
     fake_client = Path(__file__).with_name("fake_client.py")
     args[0:1] = [sys.executable, str(fake_client)]
     with self.assertRaises(subprocess.CalledProcessError) as ctx:
         subprocess.run(args, check=True, env=env)
     self.assertNotIn("somepassword", str(ctx.exception))
예제 #7
0
 def get_command_line_arguments(self, connection_settings, parameters=None):
     if parameters is None:
         parameters = []
     return DatabaseClient.settings_to_cmd_args(connection_settings,
                                                parameters)
예제 #8
0
 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)
예제 #9
0
 def get_command_line_arguments(self, connection_settings):
     return DatabaseClient.settings_to_cmd_args(connection_settings)
예제 #10
0
 def test_exec(self):
     client = DatabaseClient(connection)
     self.assertRaises(CalledProcessError, client.runshell, input=b'invalid', stdout=PIPE, stderr=PIPE)
예제 #11
0
 def test_exec(self):
     client = DatabaseClient(connection)
     run_result = client.runshell(input=b'SHOW VARIABLES', stdout=PIPE, stderr=PIPE)
     self.assertTrue(run_result.stdout)
     self.assertFalse(run_result.stderr)
예제 #12
0
파일: tests.py 프로젝트: 01-/django
 def get_command_line_arguments(self, connection_settings):
     return DatabaseClient.settings_to_cmd_args(connection_settings)