[Repoze-dev] Repoze CVS: test_publisher.py
Tres Seaver
tseaver at agendaless.com
Wed Sep 12 20:20:27 UTC 2007
Update of /home/repoze/cvs/repoze.obob/repoze/obob/tests
In directory laguna.palladion.com:/tmp/cvs-serv16762/repoze/obob/tests
Modified Files:
test_publisher.py
Log Message:
- Break multiple plugpoints out into a separate helper class, configured
through new 'helper_factory' plugpoing on ObobPublisher.
- Remove use of 'request' anywhere (the helper is responsible for all that).
- Move old default plugpoint implementations out into DefaultHelper class.
Index: test_publisher.py
===================================================================
RCS file: /home/repoze/cvs/repoze.obob/repoze/obob/tests/test_publisher.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- test_publisher.py 12 Sep 2007 18:23:35 -0000 1.5
+++ test_publisher.py 12 Sep 2007 20:20:25 -0000 1.6
@@ -1,106 +1,38 @@
import unittest
-class ObobPublisherTests(unittest.TestCase):
+class DefaultHelperTests(unittest.TestCase):
def _getTargetClass(self):
- from repoze.obob.publisher import ObobPublisher
- return ObobPublisher
-
- def _makeOne(self, *args, **kw):
- return self._getTargetClass()(*args, **kw)
-
- def test_ctor_defaults(self):
-
- from repoze.obob.publisher import PLUGPOINTS
- obob = self._makeOne()
-
- klass = self._getTargetClass()
- 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_overrides(self):
-
- 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(request_factory=_rf,
- get_root=_gr,
- before_traverse=_bt,
- traverse =_t,
- before_invoke=_bi,
- invoke=_i,
- map_result=_mr,
- )
-
- 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)
- self.failUnless(obob.before_invoke is _bi)
- 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,
- before_traverse=object())
-
- def test_ctor_traverse_not_callable_raises(self):
- self.assertRaises(ValueError, self._makeOne,
- traverse=object())
-
- def test_ctor_before_traverse_not_callable_raises(self):
- self.assertRaises(ValueError, self._makeOne,
- before_invoke=object())
-
- def test_ctor_invoke_not_callable_raises(self):
- self.assertRaises(ValueError, self._makeOne,
- invoke=object())
+ from repoze.obob.publisher import DefaultHelper
+ return DefaultHelper
- def test_ctor_map_result_not_callable_raises(self):
- self.assertRaises(ValueError, self._makeOne,
- map_result=object())
+ def _makeOne(self, environ=None):
+ if environ is None:
+ environ = {}
+ return self._getTargetClass()(environ)
- def test_request_factory_default(self):
- obob = self._makeOne()
- environ = object()
- self.failUnless(obob.request_factory(environ) is environ)
+ def test_path_elements_root(self):
+ helper = self._makeOne({'PATH_INFO': '/'})
+ self.assertEqual(len(helper.path_elements()), 0)
- 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_path_elements_nonroot(self):
+ helper = self._makeOne({'PATH_INFO': '/simple'})
+ self.assertEqual(len(helper.path_elements()), 1)
+ self.assertEqual(helper.path_elements()[0], 'simple')
- def test_get_root_default_empty(self):
- obob = self._makeOne()
- request = object()
- self.assertEqual(obob.get_root(request).keys(), {}.keys())
+ def test_path_elements_nonroot_with_empty(self):
+ helper = self._makeOne({'PATH_INFO': '/one//two'})
+ self.assertEqual(len(helper.path_elements()), 2)
+ self.assertEqual(helper.path_elements()[0], 'one')
+ self.assertEqual(helper.path_elements()[1], 'two')
def test_traverse_default(self):
- obob = self._makeOne()
+ helper = self._makeOne()
d = {'key': 'value'}
- self.assertEqual(obob.traverse(d, 'key'), 'value')
+ self.assertEqual(helper.traverse(d, 'key'), 'value')
def test_invoke_default(self):
- obob = self._makeOne()
+ helper = self._makeOne()
called_with = []
request = object()
RESULT = object()
@@ -108,7 +40,7 @@
called_with.append((args, kw))
return RESULT
- result = obob.invoke(_published, request)
+ result = helper.invoke(_published)
self.assertEqual(len(called_with), 1)
self.assertEqual(called_with[0][0], ())
@@ -116,23 +48,70 @@
self.failUnless(result is RESULT)
def test_map_result_default_result_is_string(self):
- obob = self._makeOne()
+ helper = self._makeOne()
request = object()
result = '<html/>'
- status, headers, body_iter = obob.map_result(request, result)
+ status, headers, body_iter = helper.map_result(result)
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()
+ helper = self._makeOne()
request = object()
result = object()
- status, headers, body_iter = obob.map_result(request, result)
+ status, headers, body_iter = helper.map_result(result)
self.assertEqual(status, '200 OK')
self.assertEqual(headers, {})
self.assertEqual(body_iter, result)
+
+class ObobPublisherTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from repoze.obob.publisher import ObobPublisher
+ return ObobPublisher
+
+ def _makeOne(self, *args, **kw):
+ return self._getTargetClass()(*args, **kw)
+
+ def test_ctor_defaults(self):
+ from repoze.obob.publisher import _PLUGPOINTS
+
+ obob = self._makeOne()
+ klass = self._getTargetClass()
+
+ 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_overrides(self):
+
+ def _gr(request): pass
+ def _hf(): pass
+
+ obob = self._makeOne(get_root=_gr, helper_factory=_hf)
+
+ self.failUnless(obob.get_root is _gr)
+ self.failUnless(obob.helper_factory is _hf)
+
+ 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())
_______________________________________________
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