[Zope-Checkins] SVN: Zope/branches/2.12/src/Products/SiteAccess/ Remove string exception.
Tres Seaver
tseaver at palladion.com
Fri May 21 09:58:22 EDT 2010
Log message for revision 112611:
Remove string exception.
Coverage for 'Products.SiteAccess.SiteRoot.Traverser'.
Changed:
U Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py
U Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py
-=-
Modified: Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py 2010-05-21 13:58:20 UTC (rev 112610)
+++ Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py 2010-05-21 13:58:21 UTC (rev 112611)
@@ -62,10 +62,8 @@
self.priority)
def _setId(self, id):
if id != self.id:
- raise MessageDialog(
- title='Invalid Id',
- message='Cannot change the id of a %s' % escape(self.meta_type),
- action ='./manage_main',)
+ raise ValueError('Cannot change the id of a %s'
+ % escape(self.meta_type))
class SiteRoot(Traverser, Implicit):
"""SiteAccess.SiteRoot object
Modified: Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py 2010-05-21 13:58:20 UTC (rev 112610)
+++ Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py 2010-05-21 13:58:21 UTC (rev 112611)
@@ -7,6 +7,116 @@
"""
import unittest
+
+class TraverserTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from Products.SiteAccess.SiteRoot import Traverser
+ return Traverser
+
+ def _makeOne(self):
+ traverser = self._getTargetClass()()
+ traverser.id = 'testing'
+ return traverser
+
+ def test_addToContainer(self):
+ traverser = self._makeOne()
+ container = DummyContainer()
+ traverser.addToContainer(container)
+ self.failUnless(container.testing is traverser)
+ hook = container.__before_traverse__[(100, 'Traverser')]
+ self.assertEqual(hook.name, 'testing')
+
+ def test_manage_addToContainer_no_nextUrl(self):
+ traverser = self._makeOne()
+ container = DummyContainer()
+ result = traverser.manage_addToContainer(container)
+ self.failUnless(result is None)
+ self.failUnless(container.testing is traverser)
+ hook = container.__before_traverse__[(100, 'Traverser')]
+ self.assertEqual(hook.name, 'testing')
+
+ def test_manage_addToContainer_w_nextUrl_w_name_collision(self):
+ NEXTURL='http://example.com/manage_main'
+ traverser = self._makeOne()
+ container = DummyContainer()
+ container.testing = object()
+ result = traverser.manage_addToContainer(container, nextURL=NEXTURL)
+ self.failUnless(isinstance(result, str))
+ self.failUnless('<TITLE>Item Exists</TITLE>' in result)
+ self.failIf(container.testing is traverser)
+
+ def test_manage_addToContainer_w_nextUrl_wo_name_collision(self):
+ NEXTURL='http://example.com/manage_main'
+ traverser = self._makeOne()
+ container = DummyContainer()
+ result = traverser.manage_addToContainer(container, nextURL=NEXTURL)
+ self.failUnless(isinstance(result, str))
+ self.failUnless('<TITLE>Item Added</TITLE>' in result)
+ self.failUnless(container.testing is traverser)
+ hook = container.__before_traverse__[(100, 'Traverser')]
+ self.assertEqual(hook.name, 'testing')
+
+ def test_manage_beforeDelete_item_is_not_self(self):
+ from ZPublisher.BeforeTraverse import registerBeforeTraverse
+ traverser = self._makeOne()
+ container = DummyContainer()
+ other = container.other = DummyObject(name='other')
+ registerBeforeTraverse(container, other, 'Traverser', 100)
+ item = object()
+ traverser.manage_beforeDelete(item, container)
+ hook = container.__before_traverse__[(100, 'Traverser')]
+ self.assertEqual(hook.name, 'other')
+
+ def test_manage_beforeDelete_item_is_self(self):
+ from ZPublisher.BeforeTraverse import registerBeforeTraverse
+ traverser = self._makeOne()
+ container = DummyContainer()
+ other = container.other = DummyObject(name='other')
+ registerBeforeTraverse(container, other, 'Traverser', 100)
+ traverser.manage_beforeDelete(traverser, container)
+ self.failIf(container.__before_traverse__)
+
+ def test_manage_afterAdd_item_not_self(self):
+ traverser = self._makeOne()
+ container = DummyContainer()
+ item = object()
+ traverser.manage_afterAdd(item, container)
+ self.failIf('__before_traverse__' in container.__dict__)
+
+ def test_manage_afterAdd_item_is_self(self):
+ traverser = self._makeOne()
+ container = DummyContainer()
+ traverser.manage_afterAdd(traverser, container)
+ hook = container.__before_traverse__[(100, 'Traverser')]
+ self.assertEqual(hook.name, 'testing')
+
+ def test__setId_same(self):
+ traverser = self._makeOne()
+ traverser._setId('testing') # doesn't raise
+
+ def test__setId_different(self):
+ traverser = self._makeOne()
+ self.assertRaises(ValueError, traverser._setId, 'other')
+
+
+class DummyObject(object):
+
+ def __init__(self, **kw):
+ self.__dict__.update(kw)
+
+class DummyContainer(object):
+
+ def __init__(self, **kw):
+ self.__dict__.update(kw)
+
+ def _setObject(self, name, object):
+ setattr(self, name, object)
+
+ def this(self):
+ return self
+
+
class SiteRootRegressions(unittest.TestCase):
def setUp(self):
@@ -39,6 +149,7 @@
'http://test_base/test_path')
def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(SiteRootRegressions))
- return suite
+ return unittest.TestSuite((
+ unittest.makeSuite(TraverserTests),
+ unittest.makeSuite(SiteRootRegressions),
+ ))
More information about the Zope-Checkins
mailing list