Esempio n. 1
0
 def test_exec(self):
     client = DatabaseClient(connection)
     run_result = client.runshell(input=b'SELECT * FROM user_tables;',
                                  stdout=PIPE,
                                  stderr=PIPE)
     self.assertTrue(run_result.stdout)
     self.assertFalse(run_result.stderr)
Esempio n. 2
0
    def _run_dbshell(self, rlwrap=False):
        """Run runshell command and capture its arguments."""
        def _mock_subprocess_call(*args):
            self.subprocess_args = tuple(*args)
            return 0

        client = DatabaseClient(connection)
        self.subprocess_args = None
        with mock.patch('subprocess.call', new=_mock_subprocess_call):
            with mock.patch('shutil.which', return_value='/usr/bin/rlwrap' if rlwrap else None):
                client.runshell()
        return self.subprocess_args
Esempio n. 3
0
    def _run_dbshell(self, rlwrap=False):
        """Run runshell command and capture its arguments."""
        def _mock_subprocess_run(*args, **kwargs):
            self.subprocess_args = list(*args)
            return CompletedProcess(self.subprocess_args, 0)

        client = DatabaseClient(connection)
        self.subprocess_args = None
        with mock.patch('subprocess.run', new=_mock_subprocess_run):
            with mock.patch('shutil.which', return_value='/usr/bin/rlwrap' if rlwrap else None):
                client.runshell()
        return self.subprocess_args
Esempio n. 4
0
 def settings_to_cmd_args_env(self, settings_dict, parameters=None, rlwrap=False):
     if parameters is None:
         parameters = []
     with mock.patch(
         "shutil.which", return_value="/usr/bin/rlwrap" if rlwrap else None
     ):
         return DatabaseClient.settings_to_cmd_args_env(settings_dict, parameters)
Esempio n. 5
0
    def __init__(self, *args, **kwargs):
        super(DatabaseWrapper, self).__init__(*args, **kwargs)

        self.features = DatabaseFeatures()
        self.ops = DatabaseOperations()
        self.client = DatabaseClient(self)
        self.creation = DatabaseCreation(self)
        self.introspection = DatabaseIntrospection(self)
        self.validation = BaseDatabaseValidation(self)
Esempio n. 6
0
    def __init__(self, *args, **kwargs):
        super(DatabaseWrapper, self).__init__(*args, **kwargs)

        self.features = DatabaseFeatures(self)
        use_returning_into = self.settings_dict["OPTIONS"].get('use_returning_into', True)
        self.features.can_return_id_from_insert = use_returning_into
        self.ops = DatabaseOperations(self)
        self.client = DatabaseClient(self)
        self.creation = DatabaseCreation(self)
        self.introspection = DatabaseIntrospection(self)
        self.validation = BaseDatabaseValidation(self)
Esempio n. 7
0
 def test_fail_exec(self):
     # The sqlplus Oracle client does not fail on invalid SQL queries. Mock login fail instead.
     client = DatabaseClient(connection)
     with mock.patch(
             'django.db.backends.oracle.base.DatabaseWrapper._connect_string'
     ) as mock_connect_string:
         mock_connect_string.return_value = 'invalid'
         self.assertRaises(CalledProcessError,
                           client.runshell,
                           input=b'SELECT * FROM user_tables;',
                           stdout=PIPE,
                           stderr=PIPE)
         mock_connect_string.assert_called_once()