From 97bfe0cba55720802abc7a7190ccb1ac575da50d Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 25 Nov 2020 12:19:45 +0100 Subject: [3.1.x] Fixed #32224 -- Avoided suppressing connection errors in supports_json_field on SQLite. Regression in 6789ded0a6ab797f0dcdfa6ad5d1cfa46e23abcd. Thanks Juan Garcia Alvite for the report. Backport of f5e5aac59ebbcea46b98d37834915de0f43d7cc8 from master --- tests/backends/sqlite/test_features.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tests/backends/sqlite/test_features.py (limited to 'tests') diff --git a/tests/backends/sqlite/test_features.py b/tests/backends/sqlite/test_features.py new file mode 100644 index 0000000000..9b74794408 --- /dev/null +++ b/tests/backends/sqlite/test_features.py @@ -0,0 +1,18 @@ +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' + with mock.patch( + 'django.db.backends.base.base.BaseDatabaseWrapper.cursor', + side_effect=OperationalError(msg), + ): + with self.assertRaisesMessage(OperationalError, msg): + connection.features.supports_json_field -- cgit v1.3