diff options
Diffstat (limited to 'tests/dbshell/test_sqlite.py')
-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") |