[Repoze-dev] Repoze CVS: test_publisher.py
Tres Seaver
tseaver at agendaless.com
Wed Sep 12 22:51:32 UTC 2007
Update of /home/repoze/cvs/repoze.obob/repoze/obob/tests
In directory laguna.palladion.com:/tmp/cvs-serv16971/repoze/obob/tests
Modified Files:
test_publisher.py
Log Message:
- Add tests for ObobPublisher.__call__.
Index: test_publisher.py
===================================================================
RCS file: /home/repoze/cvs/repoze.obob/repoze/obob/tests/test_publisher.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- test_publisher.py 12 Sep 2007 22:20:01 -0000 1.7
+++ test_publisher.py 12 Sep 2007 22:51:30 -0000 1.8
@@ -93,7 +93,7 @@
def test_ctor_overrides(self):
- def _gr(request): pass
+ def _gr(environ): pass
def _hf(): pass
obob = self._makeOne(get_root=_gr, helper_factory=_hf)
@@ -101,19 +101,106 @@
self.failUnless(obob.get_root is _gr)
self.failUnless(obob.helper_factory is _hf)
+ def test_get_root_default_empty(self):
+ obob = self._makeOne()
+ environ = object()
+ self.assertEqual(obob.get_root(environ).keys(), {}.keys())
+
def test_get_root_default_nonempty(self):
def _baz():
return 'BAZ'
dispatchable = {'baz': _baz }
extras = {'foo': 'bar'}
obob = self._makeOne(dispatchable=dispatchable, extras=extras)
- request = object()
- root = obob.get_root(request)
+ environ = object()
+ root = obob.get_root(environ)
self.assertEqual(root.keys(), {'baz': 1}.keys())
self.assertEqual(root['baz'], _baz)
self.assertEqual(obob.extras, {'foo': 'bar'})
- def test_get_root_default_empty(self):
+ def test_helper_factory_default(self):
obob = self._makeOne()
- request = object()
- self.assertEqual(obob.get_root(request).keys(), {}.keys())
+ environ = object()
+ helper = obob.helper_factory(environ)
+ for api in ('path_elements',
+ 'before_traverse',
+ 'traverse',
+ 'before_invoke',
+ 'invoke',
+ 'map_result',
+ ):
+ getattr(helper, api)
+
+ def test___call__default_empty_root(self):
+ obob = self._makeOne()
+ environ = {'PATH_INFO': '/'}
+ started = []
+ def _start_response(status, headers):
+ started.append((status, headers))
+
+ chunks = obob(environ, _start_response)
+
+ self.assertEqual(len(started), 1)
+ self.assertEqual(started[0][0], '200 OK')
+ self.assertEqual(started[0][1], [('Content-Type', 'text/html')])
+
+ self.assertEqual(len(chunks), 6)
+ self.assertEqual(chunks[0], '<html>')
+ self.assertEqual(chunks[1], '<body>')
+ self.assertEqual(chunks[2], '<ul>')
+ self.assertEqual(chunks[3], '</ul>')
+ self.assertEqual(chunks[4], '</body>')
+ self.assertEqual(chunks[5], '</html>')
+
+ def test___call__default_empty_nonesuch_raises(self):
+ obob = self._makeOne()
+ environ = {'PATH_INFO': '/nonesuch'}
+ started = []
+ def _start_response(status, headers):
+ started.append((status, headers))
+
+ self.assertRaises(KeyError, obob, environ, _start_response)
+
+ def test___call__default_nonempty_root(self):
+ def _baz():
+ return 'BAZ'
+ dispatchable = {'baz': _baz }
+ obob = self._makeOne(dispatchable=dispatchable)
+ environ = {'PATH_INFO': '/'}
+ started = []
+ def _start_response(status, headers):
+ started.append((status, headers))
+
+ chunks = obob(environ, _start_response)
+
+ self.assertEqual(len(started), 1)
+ self.assertEqual(started[0][0], '200 OK')
+ self.assertEqual(started[0][1], [('Content-Type', 'text/html')])
+
+ self.assertEqual(len(chunks), 7)
+ self.assertEqual(chunks[0], '<html>')
+ self.assertEqual(chunks[1], '<body>')
+ self.assertEqual(chunks[2], '<ul>')
+ self.assertEqual(chunks[3], '<li><a href="baz">baz</a></li>')
+ self.assertEqual(chunks[4], '</ul>')
+ self.assertEqual(chunks[5], '</body>')
+ self.assertEqual(chunks[6], '</html>')
+
+ def test___call__default_nonempty_path(self):
+ def _baz():
+ return 'BAZ'
+ dispatchable = {'baz': _baz }
+ obob = self._makeOne(dispatchable=dispatchable)
+ environ = {'PATH_INFO': '/baz'}
+ started = []
+ def _start_response(status, headers):
+ started.append((status, headers))
+
+ chunks = obob(environ, _start_response)
+
+ self.assertEqual(len(started), 1)
+ self.assertEqual(started[0][0], '200 OK')
+ self.assertEqual(started[0][1], [('Content-Type', 'text/html')])
+
+ self.assertEqual(len(chunks), 1)
+ self.assertEqual(chunks[0], 'BAZ')
_______________________________________________
Repoze-dev mailing list
Repoze-dev at lists.repoze.org
http://lists.repoze.org/mailman/listinfo/repoze-dev
More information about the Repoze-dev
mailing list