summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTres Seaver <tseaver@palladion.com>2009-01-07 12:51:52 +0000
committerTres Seaver <tseaver@palladion.com>2009-01-07 12:51:52 +0000
commit3ede8b4c71fb8ee15633819b05180624d3b28ea8 (patch)
treed9a3a5ce57fbdf7de90b786ea5bc433af50f849e
parent4d226b9878320daaddebe9b47e6785443a737e8e (diff)
downloadpyramid-3ede8b4c71fb8ee15633819b05180624d3b28ea8.tar.gz
pyramid-3ede8b4c71fb8ee15633819b05180624d3b28ea8.tar.bz2
pyramid-3ede8b4c71fb8ee15633819b05180624d3b28ea8.zip
Add better testing for DummyRequest; fix a bug in cookie init.
-rw-r--r--repoze/bfg/testing.py1
-rw-r--r--repoze/bfg/tests/test_testing.py57
2 files changed, 53 insertions, 5 deletions
diff --git a/repoze/bfg/testing.py b/repoze/bfg/testing.py
index be7b5fea0..3480184bd 100644
--- a/repoze/bfg/testing.py
+++ b/repoze/bfg/testing.py
@@ -339,7 +339,6 @@ class DummyRequest:
self.script_name = ''
self.path_qs = ''
self.body = ''
- self.cookies = {}
self.view_name = ''
self.subpath = []
self.context = None
diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py
index 3921a4d27..e0faf1855 100644
--- a/repoze/bfg/tests/test_testing.py
+++ b/repoze/bfg/tests/test_testing.py
@@ -329,20 +329,69 @@ class TestDummyRequest(unittest.TestCase):
def _makeOne(self, *arg, **kw):
return self._getTargetClass()(*arg, **kw)
- def test_it(self):
+ def test_params(self):
request = self._makeOne(params = {'say':'Hello'},
environ = {'PATH_INFO':'/foo'},
headers = {'X-Foo':'YUP'},
- path = '/abc',
- water = 1)
- self.assertEqual(request.path, '/abc')
+ )
self.assertEqual(request.params['say'], 'Hello')
self.assertEqual(request.GET['say'], 'Hello')
self.assertEqual(request.POST['say'], 'Hello')
self.assertEqual(request.headers['X-Foo'], 'YUP')
self.assertEqual(request.environ['PATH_INFO'], '/foo')
+
+ def test_defaults(self):
+ request = self._makeOne()
+ self.assertEqual(request.method, 'GET')
+ self.assertEqual(request.application_url, 'http://example.com')
+ self.assertEqual(request.host_url, 'http://example.com')
+ self.assertEqual(request.path_url, 'http://example.com')
+ self.assertEqual(request.url, 'http://example.com')
+ self.assertEqual(request.host, 'example.com:80')
+ self.assertEqual(request.content_length, 0)
+ self.assertEqual(request.environ.get('PATH_INFO'), None)
+ self.assertEqual(request.headers.get('X-Foo'), None)
+ self.assertEqual(request.params.get('foo'), None)
+ self.assertEqual(request.GET.get('foo'), None)
+ self.assertEqual(request.POST.get('foo'), None)
+ self.assertEqual(request.cookies.get('type'), None)
+ self.assertEqual(request.path, '/')
+ self.assertEqual(request.path_info, '/')
+ self.assertEqual(request.script_name, '')
+ self.assertEqual(request.path_qs, '')
+ self.assertEqual(request.view_name, '')
+ self.assertEqual(request.subpath, [])
+ self.assertEqual(request.context, None)
+
+ def test_environ_explicit(self):
+ request = self._makeOne(environ = {'PATH_INFO':'/foo'})
+ self.assertEqual(request.environ['PATH_INFO'], '/foo')
+
+ def test_headers_explicit(self):
+ request = self._makeOne(headers = {'X-Foo':'YUP'})
+ self.assertEqual(request.headers['X-Foo'], 'YUP')
+
+ def test_path_explicit(self):
+ request = self._makeOne(path = '/abc')
+ self.assertEqual(request.path, '/abc')
+
+ def test_cookies_explicit(self):
+ request = self._makeOne(cookies = {'type': 'gingersnap'})
+ self.assertEqual(request.cookies['type'], 'gingersnap')
+
+ def test_kwargs(self):
+ request = self._makeOne(water = 1)
self.assertEqual(request.water, 1)
+ def test_with_post(self):
+ POST = {'foo': 'bar', 'baz': 'qux'}
+ request = self._makeOne(post=POST)
+ self.assertEqual(request.method, 'POST')
+ self.assertEqual(request.POST, POST)
+ # Unlike a normal request, *don't* put explict POST data into params:
+ # doing so masks a possible XSS bug in the app.
+ self.assertEqual(request.params, {})
+
class TestDummyTemplateRenderer(unittest.TestCase):
def _getTargetClass(self):
from repoze.bfg.testing import DummyTemplateRenderer