[Erp5-report] r13386 - in /erp5/trunk/products/ERP5Form: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Mar 13 08:07:28 CET 2007
Author: kazuhiko
Date: Tue Mar 13 08:07:19 2007
New Revision: 13386
URL: http://svn.erp5.org?rev=13386&view=rev
Log:
* add getSelectionDomainDictFor(), getSelectionReportDictFor() and
getSelectionInvertModeUidListFor() in SelectionTool.
Modified:
erp5/trunk/products/ERP5Form/SelectionTool.py
erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=13386&r1=13385&r2=13386&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py Tue Mar 13 08:07:19 2007
@@ -241,6 +241,30 @@
selection_object = Selection(params=params)
self.setSelectionFor(selection_name, selection_object, REQUEST)
+ security.declareProtected(ERP5Permissions.View, 'setSelectionDomainDictFor')
+ def getSelectionDomainDictFor(self, selection_name, REQUEST=None):
+ """
+ Returns the Domain dict for a given selection_name
+ """
+ selection = self.getSelectionFor(selection_name, REQUEST=REQUEST)
+ if selection is not None:
+ try:
+ return selection.getDomain().asDomainDict
+ except AttributeError:
+ return {}
+
+ security.declareProtected(ERP5Permissions.View, 'setSelectionDomainDictFor')
+ def getSelectionReportDictFor(self, selection_name, REQUEST=None):
+ """
+ Returns the Report dict for a given selection_name
+ """
+ selection = self.getSelectionFor(selection_name, REQUEST=REQUEST)
+ if selection is not None:
+ try:
+ return selection.getReport().asDomainDict
+ except AttributeError:
+ return {}
+
security.declareProtected(ERP5Permissions.View, 'setSelectionCheckedUidsFor')
def setSelectionCheckedUidsFor(self, selection_name, checked_uids, REQUEST=None):
"""
@@ -346,6 +370,15 @@
selection = self.getSelectionFor(selection_name, REQUEST=REQUEST)
if selection is not None:
selection.edit(invert_mode=invert_mode)
+
+ security.declareProtected(ERP5Permissions.View, 'getSelectionInvertModeFor')
+ def getSelectionInvertModeUidListFor(self, selection_name, REQUEST=None):
+ """Get the 'invert_mode' parameter of a selection.
+ """
+ selection = self.getSelectionFor(selection_name, REQUEST=REQUEST)
+ if selection is not None:
+ return selection.getInvertModeUidList()
+ return 0
security.declareProtected(ERP5Permissions.View, 'setSelectionToIds')
def setSelectionToIds(self, selection_name, selection_uids, REQUEST=None):
Modified: erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testSelectionTool.py?rev=13386&r1=13385&r2=13386&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testSelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/tests/testSelectionTool.py Tue Mar 13 08:07:19 2007
@@ -34,13 +34,11 @@
os.environ['EVENT_LOG_FILE'] = os.path.join(os.getcwd(), 'zLOG.log')
os.environ['EVENT_LOG_SEVERITY'] = '-300'
-from AccessControl.SecurityManagement import newSecurityManager,\
- getSecurityManager
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from AccessControl.SecurityManagement import newSecurityManager
from zLOG import LOG
-from DateTime import DateTime
from Testing import ZopeTestCase
-from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
-from Products.ERP5Form.Document.Preference import Priority
+from Products.ERP5Type.Utils import get_request
from Products.ERP5Form.Selection import Selection
@@ -81,6 +79,136 @@
self.assertEquals({'key':'value'},
self.portal_selections.getSelectionParamsFor('test_selection'))
+ def testCallSelectionFor(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals(None,
+ self.portal_selections.callSelectionFor('not_found_selection'))
+ # XXX more tests needed
+
+ def testCheckedUids(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals([],
+ self.portal_selections.getSelectionCheckedUidsFor('test_selection'))
+ self.portal_selections.setSelectionCheckedUidsFor('test_selection',
+ ['foo'])
+ self.assertEquals(['foo'],
+ self.portal_selections.getSelectionCheckedUidsFor('test_selection'))
+ self.portal_selections.updateSelectionCheckedUidList('test_selection',
+ ['foo'], ['bar'])
+ self.assertEquals(['bar'],
+ self.portal_selections.getSelectionCheckedUidsFor('test_selection'))
+ self.portal_selections.checkAll('test_selection',
+ ['foo', 'baz'])
+ self.assertEquals(sorted(['foo', 'bar', 'baz']),
+ sorted(self.portal_selections.getSelectionCheckedUidsFor('test_selection')))
+ self.portal_selections.uncheckAll('test_selection',
+ ['foo', 'bar'])
+ self.assertEquals(['baz'],
+ self.portal_selections.getSelectionCheckedUidsFor('test_selection'))
+
+ def testGetSelectionListUrlFor(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals('',
+ self.portal_selections.getSelectionListUrlFor('test_selection'))
+
+ def testInvertMode(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.portal_selections.setSelectionInvertModeFor('test_selection', 1)
+ self.assertEquals(1,
+ self.portal_selections.getSelectionInvertModeFor('test_selection'))
+ self.assertEquals([],
+ self.portal_selections.getSelectionInvertModeUidListFor('test_selection'))
+
+ def testSetSelectionToAll(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.portal_selections.checkAll('test_selection',
+ ['foo', 'bar'])
+ self.portal_selections.setSelectionToAll('test_selection')
+ self.assertEquals(0,
+ self.portal_selections.getSelectionInvertModeFor('test_selection'))
+ self.assertEquals({},
+ self.portal_selections.getSelectionParamsFor('test_selection'))
+ self.assertEquals([],
+ self.portal_selections.getSelectionCheckedUidsFor('test_selection'))
+
+ def testSortOrder(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.portal_selections.setSelectionSortOrder('test_selection',
+ [('title', 'ascending')])
+ self.assertEquals([('title', 'ascending')],
+ self.portal_selections.getSelectionSortOrder('test_selection'))
+ self.portal_selections.setSelectionQuickSortOrder('test_selection',
+ 'title')
+ self.assertEquals([('title', 'descending')],
+ self.portal_selections.getSelectionSortOrder('test_selection'))
+ self.portal_selections.setSelectionQuickSortOrder('test_selection',
+ 'date')
+ self.assertEquals([('date', 'ascending')],
+ self.portal_selections.getSelectionSortOrder('test_selection'))
+
+ def testColumns(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals([],
+ self.portal_selections.getSelectionColumns('test_selection'))
+ self.assertEquals([('default_key', 'default_val')],
+ self.portal_selections.getSelectionColumns('test_selection', [('default_key', 'default_val')]))
+ self.portal_selections.setSelectionColumns('test_selection',
+ [('key', 'val')])
+ self.assertEquals([('key', 'val')],
+ self.portal_selections.getSelectionColumns('test_selection'))
+ self.assertEquals([('key', 'val')],
+ self.portal_selections.getSelectionColumns('test_selection', [('default_key', 'default_val')]))
+
+ def testStats(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals([' ', ' ', ' ', ' ', ' ', ' '],
+ self.portal_selections.getSelectionStats('test_selection'))
+ self.portal_selections.setSelectionStats('test_selection',
+ [])
+ self.assertEquals([],
+ self.portal_selections.getSelectionStats('test_selection'))
+
+ def testView(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ # XXX tests should be added
+
+ def testPage(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ # XXX tests should be added
+
+ def testDomainSelection(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals('',
+ self.portal_selections.buildSQLJoinExpressionFromDomainSelection({}))
+ self.assertEquals('',
+ self.portal_selections.buildSQLExpressionFromDomainSelection({}))
+ from Products.ERP5Form.Selection import DomainSelection
+ self.assertEquals('',
+ self.portal_selections.buildSQLJoinExpressionFromDomainSelection(DomainSelection({}).__of__(self.portal_selections)))
+ category_tool = self.getCategoryTool()
+ base = category_tool.newContent(portal_type = 'Base Category',
+ id='test_base_cat')
+ base_uid = base.getUid()
+ self.assertEquals('category AS test_base_cat_category',
+ self.portal_selections.buildSQLJoinExpressionFromDomainSelection({'test_base_cat': ('portal_categories', 'test_base_cat')}))
+ self.assertEquals('( catalog.uid = test_base_cat_category.uid AND (test_base_cat_category.category_uid = %d AND test_base_cat_category.base_category_uid = %d) )' % (base_uid, base_uid),
+ self.portal_selections.buildSQLExpressionFromDomainSelection({'test_base_cat': ('portal_categories', 'test_base_cat')}))
+ test = base.newContent(portal_type = 'Category', id = 'test_cat')
+ test_uid = test.getUid()
+ self.assertEquals('category AS test_base_cat_category',
+ self.portal_selections.buildSQLJoinExpressionFromDomainSelection({'test_base_cat': ('portal_categories', 'test_base_cat/test_cat')}))
+ self.assertEquals('( catalog.uid = test_base_cat_category.uid AND (test_base_cat_category.category_uid = %d AND test_base_cat_category.base_category_uid = %d) )' % (test_uid, base_uid),
+ self.portal_selections.buildSQLExpressionFromDomainSelection({'test_base_cat': ('portal_categories', 'test_base_cat/test_cat')}))
+ self.assertEquals('( catalog.uid = test_base_cat_category.uid AND (test_base_cat_category.category_uid = %d AND test_base_cat_category.base_category_uid = %d AND test_base_cat_category.category_strict_membership = 1) )' % (test_uid, base_uid),
+ self.portal_selections.buildSQLExpressionFromDomainSelection({'test_base_cat': ('portal_categories', 'test_base_cat/test_cat')}, strict_membership = 1))
+
+ def testDict(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ self.assertEquals({},
+ self.portal_selections.getSelectionDomainDictFor('test_selection'))
+ self.assertEquals({},
+ self.portal_selections.getSelectionReportDictFor('test_selection'))
+
if __name__ == '__main__':
framework()
else:
More information about the Erp5-report
mailing list