diff options
author | Jan Pieter Waagmeester <jieter@jieter.nl> | 2023-05-03 14:24:45 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-05-04 06:07:12 +0200 |
commit | f5b39b77e38b7585861df9314aba4ce93b018c4c (patch) | |
tree | 69cfa98dbbfcc98a2526d76106954f544c41369c /tests/dbshell | |
parent | 49830025c992fbc8d8f213e7c16dba1391c6adf2 (diff) | |
download | django-f5b39b77e38b7585861df9314aba4ce93b018c4c.tar.gz |
Fixed #34535 -- Fixed SQLite dbshell crash on pathlib.Path when handling CommandError.
Regression in 5b884d45ac5b76234eca614d90c83b347294c332.
Diffstat (limited to 'tests/dbshell')
-rw-r--r-- | tests/dbshell/test_sqlite.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/dbshell/test_sqlite.py b/tests/dbshell/test_sqlite.py index 7c39fd111e..faf9882ad9 100644 --- a/tests/dbshell/test_sqlite.py +++ b/tests/dbshell/test_sqlite.py @@ -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") |