mirror of https://github.com/django/django.git
Fixed #34535 -- Fixed SQLite dbshell crash on pathlib.Path when handling CommandError.
Regression in 5b884d45ac
.
This commit is contained in:
parent
49830025c9
commit
f5b39b77e3
|
@ -41,7 +41,7 @@ class Command(BaseCommand):
|
|||
raise CommandError(
|
||||
'"%s" returned non-zero exit status %s.'
|
||||
% (
|
||||
" ".join(e.cmd),
|
||||
" ".join(map(str, e.cmd)),
|
||||
e.returncode,
|
||||
),
|
||||
returncode=e.returncode,
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
import subprocess
|
||||
from pathlib import Path
|
||||
from unittest import mock, skipUnless
|
||||
|
||||
from django.core.management import CommandError, call_command
|
||||
from django.db import connection
|
||||
from django.db.backends.sqlite3.client import DatabaseClient
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
@ -21,3 +25,18 @@ class SqliteDbshellCommandTestCase(SimpleTestCase):
|
|||
self.settings_to_cmd_args_env({"NAME": "test.db.sqlite3"}, ["-help"]),
|
||||
(["sqlite3", "test.db.sqlite3", "-help"], None),
|
||||
)
|
||||
|
||||
@skipUnless(connection.vendor == "sqlite", "SQLite test")
|
||||
def test_non_zero_exit_status_when_path_to_db_is_path(self):
|
||||
sqlite_with_path = {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": Path("test.db.sqlite3"),
|
||||
}
|
||||
cmd_args = self.settings_to_cmd_args_env(sqlite_with_path)[0]
|
||||
|
||||
msg = '"sqlite3 test.db.sqlite3" returned non-zero exit status 1.'
|
||||
with mock.patch(
|
||||
"django.db.backends.sqlite3.client.DatabaseClient.runshell",
|
||||
side_effect=subprocess.CalledProcessError(returncode=1, cmd=cmd_args),
|
||||
), self.assertRaisesMessage(CommandError, msg):
|
||||
call_command("dbshell")
|
||||
|
|
Loading…
Reference in New Issue