1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
from unittest import mock, skipUnless
from django.db import connection
from django.db.backends.oracle.client import DatabaseClient
from django.test import SimpleTestCase
@skipUnless(connection.vendor == "oracle", "Requires cx_Oracle to be installed")
class OracleDbshellTests(SimpleTestCase):
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)
def test_without_rlwrap(self):
expected_args = [
"sqlplus",
"-L",
connection.client.connect_string(connection.settings_dict),
]
self.assertEqual(
self.settings_to_cmd_args_env(connection.settings_dict, rlwrap=False),
(expected_args, None),
)
def test_with_rlwrap(self):
expected_args = [
"/usr/bin/rlwrap",
"sqlplus",
"-L",
connection.client.connect_string(connection.settings_dict),
]
self.assertEqual(
self.settings_to_cmd_args_env(connection.settings_dict, rlwrap=True),
(expected_args, None),
)
def test_parameters(self):
expected_args = [
"sqlplus",
"-L",
connection.client.connect_string(connection.settings_dict),
"-HELP",
]
self.assertEqual(
self.settings_to_cmd_args_env(
connection.settings_dict,
parameters=["-HELP"],
),
(expected_args, None),
)
|