[Checkins] SVN: Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py - refactored tests

Yvo Schubbe y.2011 at wcm-solutions.de
Thu Sep 22 05:31:12 EST 2011


Log message for revision 122887:
  - refactored tests

Changed:
  UU  Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py

-=-
Modified: Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py
===================================================================
--- Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py	2011-09-22 09:12:59 UTC (rev 122886)
+++ Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py	2011-09-22 10:31:12 UTC (rev 122887)
@@ -7,7 +7,7 @@
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
+# FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
 """Unittests for Catalog brains
@@ -15,15 +15,16 @@
 
 import unittest
 
-import Acquisition
 from Acquisition import aq_base
+from Acquisition import aq_parent
+from Acquisition import Implicit
 from zExceptions import Unauthorized
 from ZODB.POSException import ConflictError
 
 _marker = object()
 
 
-class Happy(Acquisition.Implicit):
+class Happy(Implicit):
     """Happy content"""
 
     def __init__(self, id):
@@ -55,32 +56,33 @@
         return path
 
 
-class DummyCatalog(Acquisition.Implicit):
+class DummyRoot(Implicit):
 
-    _objs = {'/happy': Happy('happy'),
-             '/secret': Secret('secret'),
-             '/conflicter': Conflicter('conflicter')}
-    _paths = _objs.keys() + ['/zonked']
-    _paths.sort()
+    happy = Happy('happy')
+    secret = Secret('secret')
+    conflicter = Conflicter('conflicter')
 
-    # This is sooooo ugly
-
     def unrestrictedTraverse(self, path, default=None):
-        assert path in ['', ('', ), ['']], path
+        assert path in ['', ('',), ['']], path
         return self
 
     def restrictedTraverse(self, path, default=_marker):
-        if not path.startswith('/'):
-            path = '/'+path
+        if path.startswith('/'):
+            path = path[1:]
         try:
-            ob = self._objs[path].__of__(self)
+            ob = getattr(self, path).__of__(self)
             ob.check()
             return ob
-        except KeyError:
+        except AttributeError:
             if default is not _marker:
                 return default
             raise
 
+
+class DummyCatalog(Implicit):
+
+    _paths = ['/conflicter', '/happy', '/secret', '/zonked']
+
     def getpath(self, rid):
         return self._paths[rid]
 
@@ -102,8 +104,8 @@
 class TestBrains(unittest.TestCase):
 
     def setUp(self):
-        self.cat = DummyCatalog()
-        self.cat.REQUEST = DummyRequest()
+        self.root = DummyRoot()
+        self.cat = DummyCatalog().__of__(self.root)
 
     def _makeBrain(self, rid):
         from Products.ZCatalog.CatalogBrains import AbstractCatalogBrain
@@ -131,7 +133,10 @@
         self.assertRaises(ConflictError, b.getPath)
 
     def testGetURL(self):
+        request = DummyRequest()
         b = self._makeBrain(0)
+
+        self.root.REQUEST = request
         self.assertEqual(b.getURL(), 'http://superbad.com/conflicter')
 
     def testGetRID(self):
@@ -139,8 +144,12 @@
         self.assertEqual(b.getRID(), 42)
 
     def testGetObjectHappy(self):
+        request = DummyRequest()
         b = self._makeBrain(1)
+
+        self.root.REQUEST = request
         self.assertEqual(b.getPath(), '/happy')
+        self.assertEqual(b.getObject().REQUEST, request)
         self.assertTrue(aq_base(b.getObject()) is
                         aq_base(self.cat.getobject(1)))
 
@@ -150,7 +159,6 @@
         self.assertRaises(ConflictError, b.getObject)
 
     def testGetObjectRaisesUnauthorized(self):
-        from zExceptions import Unauthorized
         b = self._makeBrain(2)
         self.assertEqual(b.getPath(), '/secret')
         self.assertRaises(Unauthorized, b.getObject)
@@ -159,7 +167,7 @@
         from zExceptions import NotFound
         b = self._makeBrain(3)
         self.assertEqual(b.getPath(), '/zonked')
-        self.assertRaises(KeyError, self.cat.getobject, 3)
+        self.assertRaises(AttributeError, self.cat.getobject, 3)
         self.assertRaises((NotFound, AttributeError, KeyError), b.getObject)
 
 


Property changes on: Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_brains.py
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
   - 1.2
Deleted: svn:keywords
   - Id



More information about the checkins mailing list