[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