summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_request.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_request.py')
-rw-r--r--repoze/bfg/tests/test_request.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_request.py b/repoze/bfg/tests/test_request.py
new file mode 100644
index 000000000..f2124d4c9
--- /dev/null
+++ b/repoze/bfg/tests/test_request.py
@@ -0,0 +1,49 @@
+import unittest
+
+class TestMakeRequestASCII(unittest.TestCase):
+ def _callFUT(self, event):
+ from repoze.bfg.request import make_request_ascii
+ return make_request_ascii(event)
+
+ def test_it(self):
+ request = DummyRequest()
+ event = DummyNewRequestEvent(request)
+ self._callFUT(event)
+ self.assertEqual(request.charset, None)
+
+class TestSubclassedRequest(unittest.TestCase):
+ def _getTargetClass(self):
+ from repoze.bfg.request import Request
+ return Request
+
+ def _makeOne(self, environ):
+ request = self._getTargetClass()(environ)
+ return request
+
+ def test_params_decoded_from_utf_8_by_default(self):
+ environ = {
+ 'PATH_INFO':'/',
+ 'QUERY_STRING':'la=La%20Pe%C3%B1a'
+ }
+ request = self._makeOne(environ)
+ self.assertEqual(request.GET['la'], u'La Pe\xf1a')
+
+ def test_params_bystring_when_charset_None(self):
+ environ = {
+ 'PATH_INFO':'/',
+ 'QUERY_STRING':'la=La%20Pe%C3%B1a'
+ }
+ request = self._makeOne(environ)
+ request.charset = None
+ self.assertEqual(request.GET['la'], 'La Pe\xc3\xb1a')
+
+class DummyRequest:
+ pass
+
+class DummyNewRequestEvent:
+ def __init__(self, request):
+ self.request = request
+
+
+
+