[Erp5-report] r21491 - /erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jun 11 14:36:30 CEST 2008


Author: jerome
Date: Wed Jun 11 14:36:26 2008
New Revision: 21491

URL: http://svn.erp5.org?rev=21491&view=rev
Log:
Define an utility class to test ERP5 Reports

Modified:
    erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py

Modified: erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py?rev=21491&r1=21490&r2=21491&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py (original)
+++ erp5/trunk/products/ERP5Type/tests/ERP5TypeTestCase.py Wed Jun 11 14:36:26 2008
@@ -790,6 +790,43 @@
                             % title) # run_unit_test depends on this string.
         raise
 
+
+class ERP5ReportTestCase(ERP5TypeTestCase):
+  """Base class for testing ERP5 Reports
+  """
+  def getReportSectionList(self, report_name):
+    """Get the list of report sections in a report."""
+    report = getattr(self.portal, report_name)
+    report_method = getattr(self.portal, report.report_method)
+    return report_method()
+
+  def getListBoxLineList(self, report_section):
+    """Render the listbox in a report section, return None if no listbox exists
+    in the report_section.
+    """
+    result = None
+    here = report_section.getObject(self.portal)
+    report_section.pushReport(self.portal)
+    form = getattr(here, report_section.getFormId())
+    if form.has_field('listbox'):
+      result = form.listbox.get_value('default',
+                                      render_format='list',
+                                      REQUEST=self.portal.REQUEST)
+    report_section.popReport(self.portal)
+    return result
+
+  def checkLineProperties(self, line, **kw):
+    """Check properties of a report line.
+    """
+    diff_list = []
+    for k, v in kw.items():
+      if v != line.getColumnProperty(k):
+        diff_list.append('`%s`: expected: %r actual: %r' %
+                                (k, v, line.getColumnProperty(k)))
+    if diff_list:
+      self.fail('Lines differs:\n' + '\n'.join(diff_list))
+
+
 from unittest import _makeLoader, TestSuite
 
 def dummy_makeSuite(testCaseClass, prefix='dummy_test', sortUsing=cmp, suiteClass=TestSuite):




More information about the Erp5-report mailing list