[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