[Checkins] SVN: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/ Test for validate_items fixed and test for identifying selected objects added.
Charlie Clark
charlie at begeistert.org
Tue Jun 9 05:34:46 EDT 2009
Log message for revision 100755:
Test for validate_items fixed and test for identifying selected objects added.
Changed:
U Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py
U Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/tests/test_new_folder.py
-=-
Modified: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py
===================================================================
--- Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py 2009-06-09 09:33:45 UTC (rev 100754)
+++ Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py 2009-06-09 09:34:46 UTC (rev 100755)
@@ -16,7 +16,6 @@
from zope.formlib import form
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
-from Products.Five.formlib.formbase import PageForm
from Products.CMFCore.interfaces import IDynamicType
@@ -353,7 +352,7 @@
return fields
def _get_ids(self, data):
- """Strip prefixes from ids that have been selected"""
+ """Identify objects that have been selected"""
ids = [k.split(".")[0] for k, v in data.items() if v == True]
return ids
@@ -387,10 +386,8 @@
def validate_items(self, action=None, data=None):
"""Check whether any items have been selected for
the requested action."""
- errors = form.getWidgetsData(self.widgets, self.prefix, data)
- if data is None:
- data = {}
- if len(self._get_ids(data)) == 0:
+ super(ContentsView, self).validate(action, data)
+ if data is None or data == {}:
return [_(u"Please select one or more items first.")]
else:
return []
Modified: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/tests/test_new_folder.py
===================================================================
--- Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/tests/test_new_folder.py 2009-06-09 09:33:45 UTC (rev 100754)
+++ Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/tests/test_new_folder.py 2009-06-09 09:34:46 UTC (rev 100755)
@@ -67,29 +67,47 @@
view = ContentsView(self.folder, TestRequest())
self.failIf(view.can_sort_be_changed())
- def test_has_subobjects(self):
+ def test_empty_has_subobjects(self):
view = ContentsView(self.folder, TestRequest())
self.failIf(view.has_subobjects())
+ def test_has_subobjects(self):
+ self._make_one()
+ view = ContentsView(self.folder, TestRequest())
+ self.failUnless(view.has_subobjects())
+
def test_check_clipboard_data(self):
view = ContentsView(self.folder, TestRequest())
self.failIf(view.check_clipboard_data())
- # This test is flawed and always fails on empty folders
- # def test_check_validator(self):
- # view = ContentsView(self.folder, TestRequest())
- # self.assertEquals(view.validate_items(),
- # [u'Please select one or more items first.'])
- # self.assertEquals(view.validate_items(data={'foo':True}), [])
+ def test_validate_items(self):
+ """Cannot validate forms without widgets"""
+ view = ContentsView(self.folder, TestRequest())
+ self.assertRaises(AttributeError,
+ view.validate_items, "", {'foo':'bar'})
+
+ def test_get_ids(self):
+ view = ContentsView(self.folder, TestRequest())
+ self.assertEquals(
+ view._get_ids({'foo':'bar'}),
+ [])
+ self.assertEquals(
+ view._get_ids({'DummyItem1.select':True,
+ 'DummyItem2.select':False,
+ 'DummyItem3.select':True}),
+ ['DummyItem1', 'DummyItem3'])
+ def _make_one(self, name="DummyItem"):
+ content = DummyContent(name)
+ content.portal_type = "Dummy Content"
+ self.folder._setObject(name, content)
+
def _make_batch(self):
"""Add enough objects to force pagination"""
batch_size = ContentsView._BATCH_SIZE
for i in range(batch_size + 2):
content_id = "Dummy%s" % i
- content_obj = DummyContent(content_id)
- content_obj.portal_type = "Dummy Content"
- obj = self.folder._setObject(content_id, content_obj)
+ self._make_one(content_id)
def site_login(self):
newSecurityManager(None,
@@ -127,6 +145,4 @@
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(FolderBrowserViewTests))
- return suite
-
-# bin/test -s ~/CMF-Sandbox/cmf-trunk/src/Products.CMFDefault/Products/CMFDefault/browser
\ No newline at end of file
+ return suite
\ No newline at end of file
More information about the Checkins
mailing list