summaryrefslogtreecommitdiff
path: root/tests/check_framework/test_security.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check_framework/test_security.py')
-rw-r--r--tests/check_framework/test_security.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/check_framework/test_security.py b/tests/check_framework/test_security.py
index cb035a90a4..387a9808cb 100644
--- a/tests/check_framework/test_security.py
+++ b/tests/check_framework/test_security.py
@@ -1,11 +1,18 @@
+import unittest
+from typing import TYPE_CHECKING
+
from django.conf import settings
from django.core.checks.messages import Error, Warning
from django.core.checks.security import base, csrf, sessions
from django.core.management.utils import get_random_secret_key
from django.test import SimpleTestCase
from django.test.utils import override_settings
+from django.utils.version import PY314
from django.views.generic import View
+if TYPE_CHECKING:
+ from django.http.request import HttpRequest
+
class CheckSessionCookieSecureTest(SimpleTestCase):
@override_settings(
@@ -611,6 +618,12 @@ def failure_view_with_invalid_signature():
pass
+if PY314:
+
+ def failure_view_with_deferred_annotations(request: HttpRequest, reason: str):
+ pass
+
+
good_class_based_csrf_failure_view = View.as_view()
@@ -651,6 +664,15 @@ class CSRFFailureViewTest(SimpleTestCase):
def test_failure_view_valid_class_based(self):
self.assertEqual(csrf.check_csrf_failure_view(None), [])
+ @unittest.skipUnless(PY314, "Deferred annotations are Python 3.14+ only")
+ @override_settings(
+ CSRF_FAILURE_VIEW=(
+ "check_framework.test_security.failure_view_with_deferred_annotations"
+ ),
+ )
+ def test_failure_view_valid_deferred_annotations(self):
+ self.assertEqual(csrf.check_csrf_failure_view(None), [])
+
class CheckCrossOriginOpenerPolicyTest(SimpleTestCase):
@override_settings(