summaryrefslogtreecommitdiff
path: root/tests/test_viewderivers.py
diff options
context:
space:
mode:
authorTheron Luhn <theron@luhn.com>2019-09-19 18:32:41 -0700
committerTheron Luhn <theron@luhn.com>2019-09-19 18:32:41 -0700
commit6dd21309e4d9b21162b8db3e015533be10db0601 (patch)
treeb032a3aeeeed79fcb6ad1b273bc214147dd0884c /tests/test_viewderivers.py
parent3af1883bcd617d74eb8c9b134b5ac830f8cdd2a9 (diff)
downloadpyramid-6dd21309e4d9b21162b8db3e015533be10db0601.tar.gz
pyramid-6dd21309e4d9b21162b8db3e015533be10db0601.tar.bz2
pyramid-6dd21309e4d9b21162b8db3e015533be10db0601.zip
Add allow_no_origin option to CSRF.
Diffstat (limited to 'tests/test_viewderivers.py')
-rw-r--r--tests/test_viewderivers.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py
index f01cb490e..3ca5f8534 100644
--- a/tests/test_viewderivers.py
+++ b/tests/test_viewderivers.py
@@ -1504,6 +1504,27 @@ class TestDeriveView(unittest.TestCase):
result = view(None, request)
self.assertTrue(result is response)
+ def test_csrf_view_allow_no_origin(self):
+ response = DummyResponse()
+
+ def inner_view(request):
+ return response
+
+ self.config.set_default_csrf_options(
+ require_csrf=True, allow_no_origin=True
+ )
+ request = self._makeRequest()
+ request.scheme = "https"
+ request.domain = "example.com"
+ request.host_port = "443"
+ request.referrer = None
+ request.method = 'POST'
+ request.session = DummySession({'csrf_token': 'foo'})
+ request.POST = {'csrf_token': 'foo'}
+ view = self.config._derive_view(inner_view, require_csrf=True)
+ result = view(None, request)
+ self.assertTrue(result is response)
+
def test_csrf_view_fails_on_bad_PUT_header(self):
from pyramid.exceptions import BadCSRFToken