[Repoze-dev] Repoze CVS: test_publisher.py

Tres Seaver tseaver at agendaless.com
Wed Sep 12 18:23:37 UTC 2007


Update of /home/repoze/cvs/repoze.obob/repoze/obob/tests
In directory laguna.palladion.com:/tmp/cvs-serv16362/repoze/obob/tests

Modified Files:
	test_publisher.py 
Log Message:
 - Add a default 'get_root' implementation
 
   o Returns a callable mapping, holding keys passed to the publisher's ctor
     as 'dispatchables'.

   o If published directly, returns a dumb HTML page listing the keys as
     links.

 - Add a 'make_obob' which can be used in a paste configuration.


Index: test_publisher.py
===================================================================
RCS file: /home/repoze/cvs/repoze.obob/repoze/obob/tests/test_publisher.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- test_publisher.py	12 Sep 2007 16:34:46 -0000	1.4
+++ test_publisher.py	12 Sep 2007 18:23:35 -0000	1.5
@@ -9,45 +9,30 @@
     def _makeOne(self, *args, **kw):
         return self._getTargetClass()(*args, **kw)
 
-    def test_ctor_no_root_raises(self):
-        self.assertRaises(ValueError, self._makeOne)
-
-    def test_ctor_root_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, object())
-
-    def test_ctor_root_only(self):
-
-        def _root(request): pass
-            
-        obob = self._makeOne(_root)
+    def test_ctor_defaults(self):
 
-        self.failUnless(obob.get_root is _root)
+        from repoze.obob.publisher import PLUGPOINTS
+        obob = self._makeOne()
 
         klass = self._getTargetClass()
-        for defaulted in ('request_factory',
-                          'before_traverse',
-                          'traverse',
-                          'before_invoke',
-                          'invoke',
-                          'map_result',
-                         ):
-            from_instance = getattr(obob, defaulted).im_func
-            from_class = getattr(klass, defaulted).im_func
+        for plugpoint in PLUGPOINTS:
+            from_instance = getattr(obob, plugpoint).im_func
+            from_class = getattr(klass, plugpoint).im_func
 
             self.failUnless(from_instance is from_class)
 
-    def test_ctor_root_and_others(self):
+    def test_ctor_overrides(self):
 
-        def _root(request): pass
         def _rf(environ): pass
+        def _gr(request): pass
         def _bt(current, name, request): pass
         def _t(current, name): pass
         def _bi(published, request): pass
         def _i(published, request): pass
         def _mr(request, result): pass
 
-        obob = self._makeOne(get_root=_root,
-                             request_factory=_rf,
+        obob = self._makeOne(request_factory=_rf,
+                             get_root=_gr,
                              before_traverse=_bt,
                              traverse =_t,
                              before_invoke=_bi,
@@ -55,7 +40,7 @@
                              map_result=_mr,
                             )
 
-        self.failUnless(obob.get_root is _root)
+        self.failUnless(obob.get_root is _gr)
         self.failUnless(obob.request_factory is _rf)
         self.failUnless(obob.before_traverse is _bt)
         self.failUnless(obob.traverse is _t)
@@ -63,38 +48,59 @@
         self.failUnless(obob.invoke is _i)
         self.failUnless(obob.map_result is _mr)
 
+    def test_ctor_get_root_not_callable_raises(self):
+        self.assertRaises(ValueError, self._makeOne,
+                                      get_root=object())
+
     def test_ctor_before_traverse_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, get_root=lambda *r: None,
+        self.assertRaises(ValueError, self._makeOne,
                                       before_traverse=object())
 
     def test_ctor_traverse_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, get_root=lambda *r: None,
+        self.assertRaises(ValueError, self._makeOne,
                                       traverse=object())
 
     def test_ctor_before_traverse_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, get_root=lambda *r: None,
+        self.assertRaises(ValueError, self._makeOne,
                                       before_invoke=object())
 
     def test_ctor_invoke_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, get_root=lambda *r: None,
+        self.assertRaises(ValueError, self._makeOne,
                                       invoke=object())
 
     def test_ctor_map_result_not_callable_raises(self):
-        self.assertRaises(ValueError, self._makeOne, get_root=lambda *r: None,
+        self.assertRaises(ValueError, self._makeOne,
                                       map_result=object())
 
     def test_request_factory_default(self):
-        obob = self._makeOne(get_root=lambda *request: None)
+        obob = self._makeOne()
         environ = object()
         self.failUnless(obob.request_factory(environ) is environ)
 
+    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)
+        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):
+        obob = self._makeOne()
+        request = object()
+        self.assertEqual(obob.get_root(request).keys(), {}.keys())
+
     def test_traverse_default(self):
-        obob = self._makeOne(get_root=lambda *request: None)
+        obob = self._makeOne()
         d = {'key': 'value'}
         self.assertEqual(obob.traverse(d, 'key'), 'value')
 
     def test_invoke_default(self):
-        obob = self._makeOne(get_root=lambda *request: None)
+        obob = self._makeOne()
         called_with = []
         request = object()
         RESULT = object()
@@ -105,17 +111,28 @@
         result = obob.invoke(_published, request)
 
         self.assertEqual(len(called_with), 1)
-        self.assertEqual(called_with[0][0], (request,))
+        self.assertEqual(called_with[0][0], ())
         self.assertEqual(called_with[0][1], {})
         self.failUnless(result is RESULT)
 
-    def test_map_result_default(self):
-        obob = self._makeOne(get_root=lambda *request: None)
+    def test_map_result_default_result_is_string(self):
+        obob = self._makeOne()
         request = object()
-        result = object()
+        result = '<html/>'
 
         status, headers, body_iter = obob.map_result(request, result)
 
-        self.assertEqual(status, 200)
+        self.assertEqual(status, '200 OK')
         self.assertEqual(headers, {})
         self.assertEqual(body_iter, [result])
+
+    def test_map_result_default_result_not_string(self):
+        obob = self._makeOne()
+        request = object()
+        result = object()
+
+        status, headers, body_iter = obob.map_result(request, result)
+
+        self.assertEqual(status, '200 OK')
+        self.assertEqual(headers, {})
+        self.assertEqual(body_iter, result)

_______________________________________________
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