[Checkins] SVN: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py Coverage.

Tres Seaver tseaver at palladion.com
Mon May 25 21:49:27 EDT 2009


Log message for revision 100388:
  Coverage.

Changed:
  U   zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py

-=-
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py	2009-05-26 01:46:32 UTC (rev 100387)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py	2009-05-26 01:49:27 UTC (rev 100388)
@@ -1,6 +1,6 @@
 ##############################################################################
 #
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# Copyright (c) 2001-2009 Zope Corporation and Contributors.
 # All Rights Reserved.
 #
 # This software is subject to the provisions of the Zope Public License,
@@ -17,18 +17,20 @@
 """
 import unittest
 
-from zope.app.pagetemplate.simpleviewclass import SimpleViewClass
-from zope.app.pagetemplate.tests.simpletestview import SimpleTestView
-from zope.publisher.browser import TestRequest
+class Test_SimpleTestView(unittest.TestCase):
 
-class data(object): pass
+    def _getTargetClass(self):
+        from zope.app.pagetemplate.tests.simpletestview import SimpleTestView
+        return SimpleTestView
 
-class SimpleViewTestCase(unittest.TestCase):
+    def _makeOne(self, context, request):
+        return self._getTargetClass()(context, request)
 
     def test_simple(self):
-        ob = data()
+        from zope.publisher.browser import TestRequest
+        context = DummyContext()
         request = TestRequest()
-        view = SimpleTestView(ob, request)
+        view = self._makeOne(context, request)
         macro = view['test']
         out = view()
         self.assertEqual(out,
@@ -37,27 +39,38 @@
                          '    <p>hello world</p>\n'
                          '  </body>\n</html>\n')
 
-    def test_name(self):
-        View = SimpleViewClass('testsimpleviewclass.pt', name='test.html')
-        view = View(None, None)
+class Test_SimpleViewClass(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.app.pagetemplate.simpleviewclass import SimpleViewClass
+        return SimpleViewClass
+
+    def _makeKlass(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test___name__(self):
+        klass = self._makeKlass('testsimpleviewclass.pt', name='test.html')
+        view = klass(None, None)
         self.assertEqual(view.__name__, 'test.html')
 
-    def test_getitem(self):
-        View = SimpleViewClass('testsimpleviewclass.pt', name='test.html')
-        view = View(None, None)
+    def test___getitem___(self):
+        klass = self._makeKlass('testsimpleviewclass.pt', name='test.html')
+        view = klass(None, None)
         self.assert_(view['test'] is not None)
         self.assertRaises(KeyError, view.__getitem__, 'foo')
 
-    def test_WBases(self):
-        class C(object): pass
+    def test_w_base_classes(self):
+        from zope.publisher.browser import TestRequest
+        class BaseClass(object):
+            pass
 
-        SimpleTestView = SimpleViewClass('testsimpleviewclass.pt', bases=(C, ))
+        klass = self._makeKlass('testsimpleviewclass.pt', bases=(BaseClass, ))
 
-        self.failUnless(issubclass(SimpleTestView, C))
+        self.failUnless(issubclass(klass, BaseClass))
 
-        ob = data()
+        ob = DummyContext()
         request = TestRequest()
-        view = SimpleTestView(ob, request)
+        view = klass(ob, request)
         macro = view['test']
         out = view()
         self.assertEqual(out,
@@ -66,8 +79,95 @@
                          '    <p>hello world</p>\n'
                          '  </body>\n</html>\n')
 
+class Test_simple(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.app.pagetemplate.simpleviewclass import simple
+        return simple
+
+    def _makeOne(self, context=None, request=None):
+        if context is None:
+            context = DummyContext()
+        if request is None:
+            request = DummyRequest()
+        return self._getTargetClass()(context, request)
+
+    def test_class_conforms_to_IBrowserPublisher(self):
+        from zope.interface.verify import verifyClass
+        from zope.publisher.interfaces.browser import IBrowserPublisher
+        verifyClass(IBrowserPublisher, self._getTargetClass())
+
+    def test_browserDefault(self):
+        request = DummyRequest()
+        view = self._makeOne(request=request)
+        self.assertEqual(view.browserDefault(request), (view, ()))
+
+    def test_publishTraverse_not_index_raises_NotFound(self):
+        from zope.publisher.interfaces import NotFound
+        request = DummyRequest()
+        view = self._makeOne(request=request)
+        self.assertRaises(NotFound, view.publishTraverse, request, 'nonesuch')
+
+    def test_publishTraverse_w_index_returns_index(self):
+        request = DummyRequest()
+        view = self._makeOne(request=request)
+        index = view.index = DummyTemplate()
+        self.failUnless(view.publishTraverse(request, 'index.html') is index)
+
+    def test___getitem___uses_index_macros(self):
+        view = self._makeOne()
+        view.index = index = DummyTemplate()
+        index.macros = {}
+        index.macros['aaa'] = aaa = object()
+        self.failUnless(view['aaa'] is aaa)
+
+    def test___call___no_args_no_kw(self):
+        view = self._makeOne()
+        view.index = index = DummyTemplate()
+        result = view()
+        self.failUnless(result is index)
+        self.assertEqual(index._called_with, ((), {}))
+
+    def test___call___w_args_no_kw(self):
+        view = self._makeOne()
+        view.index = index = DummyTemplate()
+        result = view('abc')
+        self.failUnless(result is index)
+        self.assertEqual(index._called_with, (('abc',), {}))
+
+    def test___call___no_args_w_kw(self):
+        view = self._makeOne()
+        view.index = index = DummyTemplate()
+        result = view(foo='bar')
+        self.failUnless(result is index)
+        self.assertEqual(index._called_with, ((), {'foo': 'bar'}))
+
+    def test___call___no_args_no_kw(self):
+        view = self._makeOne()
+        view.index = index = DummyTemplate()
+        result = view('abc', foo='bar')
+        self.failUnless(result is index)
+        self.assertEqual(index._called_with, (('abc',), {'foo': 'bar'}))
+
+
+class DummyContext:
+    pass
+
+class DummyResponse:
+    pass
+
+class DummyRequest:
+    debug = False
+    response = DummyResponse()
+
+class DummyTemplate:
+    def __call__(self, *args, **kw):
+        self._called_with = (args, kw)
+        return self
+
 def test_suite():
-    return unittest.makeSuite(SimpleViewTestCase)
-
-if __name__=='__main__':
-    unittest.TextTestRunner().run(test_suite())
+    return unittest.TestSuite((
+        unittest.makeSuite(Test_SimpleTestView),
+        unittest.makeSuite(Test_SimpleViewClass),
+        unittest.makeSuite(Test_simple),
+    ))



More information about the Checkins mailing list