summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2023-09-24 19:02:50 +1000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-09-25 08:17:03 +0200
commit4f2ae0644de34791b84b7beb11a966ce4bc48fb6 (patch)
treef4bf5c6d4b2cb780f4f006e1175307ca964e5338 /tests
parent574ee4023e15cfb195833edfbaed353f8021c62f (diff)
Fixed #34849 -- Avoided raising RuntimeWarning about import-time queries when apps are reinitialized with test tools.
Regression in fbd16438f46bc2128926958ad24331da5d1b406f.
Diffstat (limited to 'tests')
-rw-r--r--tests/apps/tests.py8
-rw-r--r--tests/postgres_tests/test_apps.py12
2 files changed, 15 insertions, 5 deletions
diff --git a/tests/apps/tests.py b/tests/apps/tests.py
index e443e37dc5..fba9c43a34 100644
--- a/tests/apps/tests.py
+++ b/tests/apps/tests.py
@@ -607,10 +607,9 @@ class QueryPerformingAppTests(TransactionTestCase):
custom_settings = override_settings(
INSTALLED_APPS=[f"apps.query_performing_app.apps.{app_config_name}"]
)
- # Ignore the RuntimeWarning, as override_settings.enable() calls
- # AppConfig.ready() which will trigger the warning.
- with self.assertWarnsMessage(RuntimeWarning, self.expected_msg):
- custom_settings.enable()
+ custom_settings.enable()
+ old_stored_app_configs = apps.stored_app_configs
+ apps.stored_app_configs = []
try:
with patch.multiple(apps, ready=False, loading=False, app_configs={}):
with self.assertWarnsMessage(RuntimeWarning, self.expected_msg):
@@ -619,4 +618,5 @@ class QueryPerformingAppTests(TransactionTestCase):
app_config = apps.get_app_config("query_performing_app")
return app_config.query_results
finally:
+ setattr(apps, "stored_app_configs", old_stored_app_configs)
custom_settings.disable()
diff --git a/tests/postgres_tests/test_apps.py b/tests/postgres_tests/test_apps.py
index 3fdd7c3faf..ea2a28d7a8 100644
--- a/tests/postgres_tests/test_apps.py
+++ b/tests/postgres_tests/test_apps.py
@@ -5,7 +5,7 @@ from django.db import connection
from django.db.backends.signals import connection_created
from django.db.migrations.writer import MigrationWriter
from django.test import TestCase
-from django.test.utils import modify_settings
+from django.test.utils import CaptureQueriesContext, modify_settings, override_settings
try:
from django.contrib.postgres.fields import (
@@ -14,6 +14,7 @@ try:
DecimalRangeField,
IntegerRangeField,
)
+ from django.contrib.postgres.signals import get_hstore_oids
from django.db.backends.postgresql.psycopg_any import (
DateRange,
DateTimeRange,
@@ -27,6 +28,15 @@ except ImportError:
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests")
class PostgresConfigTests(TestCase):
+ def test_install_app_no_warning(self):
+ # Clear cache to force queries when (re)initializing the
+ # "django.contrib.postgres" app.
+ get_hstore_oids.cache_clear()
+ with CaptureQueriesContext(connection) as captured_queries:
+ with override_settings(INSTALLED_APPS=["django.contrib.postgres"]):
+ pass
+ self.assertGreaterEqual(len(captured_queries), 1)
+
def test_register_type_handlers_connection(self):
from django.contrib.postgres.signals import register_type_handlers