31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from unittest import mock
|
|
|
|
from django.db import connection
|
|
from django.db.backends.base.client import BaseDatabaseClient
|
|
from django.test import SimpleTestCase
|
|
|
|
|
|
class SimpleDatabaseClientTests(SimpleTestCase):
|
|
def setUp(self):
|
|
self.client = BaseDatabaseClient(connection=connection)
|
|
|
|
def test_settings_to_cmd_args_env(self):
|
|
msg = (
|
|
'subclasses of BaseDatabaseClient must provide a '
|
|
'settings_to_cmd_args_env() method or override a runshell().'
|
|
)
|
|
with self.assertRaisesMessage(NotImplementedError, msg):
|
|
self.client.settings_to_cmd_args_env(None, None)
|
|
|
|
def test_runshell_use_environ(self):
|
|
for env in [None, {}]:
|
|
with self.subTest(env=env):
|
|
with mock.patch('subprocess.run') as run:
|
|
with mock.patch.object(
|
|
BaseDatabaseClient,
|
|
'settings_to_cmd_args_env',
|
|
return_value=([], env),
|
|
):
|
|
self.client.runshell(None)
|
|
run.assert_called_once_with([], env=None, check=True)
|