2020-11-25 19:19:45 +08:00
|
|
|
from unittest import mock, skipUnless
|
|
|
|
|
|
|
|
from django.db import OperationalError, connection
|
|
|
|
from django.test import TestCase
|
|
|
|
|
|
|
|
|
|
|
|
@skipUnless(connection.vendor == "sqlite", "SQLite tests.")
|
|
|
|
class FeaturesTests(TestCase):
|
|
|
|
def test_supports_json_field_operational_error(self):
|
|
|
|
if hasattr(connection.features, "supports_json_field"):
|
|
|
|
del connection.features.supports_json_field
|
|
|
|
msg = "unable to open database file"
|
2022-03-19 03:56:10 +08:00
|
|
|
with mock.patch.object(
|
|
|
|
connection,
|
|
|
|
"cursor",
|
2020-11-25 19:19:45 +08:00
|
|
|
side_effect=OperationalError(msg),
|
|
|
|
):
|
|
|
|
with self.assertRaisesMessage(OperationalError, msg):
|
|
|
|
connection.features.supports_json_field
|