[Erp5-report] r27391 - /erp5/trunk/products/ERP5/tests/testERP5Interfaces.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Jun 5 13:37:51 CEST 2009
Author: luke
Date: Fri Jun 5 13:37:50 2009
New Revision: 27391
URL: http://svn.erp5.org?rev=27391&view=rev
Log:
- as everything is tested *exactly* same way use automagically generated test and list of tuples to define implementations
Modified:
erp5/trunk/products/ERP5/tests/testERP5Interfaces.py
Modified: erp5/trunk/products/ERP5/tests/testERP5Interfaces.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5Interfaces.py?rev=27391&r1=27390&r2=27391&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5Interfaces.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testERP5Interfaces.py [utf8] Fri Jun 5 13:37:50 2009
@@ -30,88 +30,49 @@
from zope.interface.verify import verifyClass
import unittest
+# this list can be generated automatically using introspection or can be set
+# manually and treated as reference to what implements what
+implements_tuple_list = [
+ ('TradeModelCell', 'ITransformation'),
+ ('TradeModelCell', 'IVariated'),
+ ('TradeModelLine', 'ITransformation'),
+ ('TradeModelLine', 'IVariated'),
+ ('Transformation', 'ITransformation'),
+ ('Transformation', 'IVariated'),
+ ('BusinessPath', 'IBusinessPath'),
+ ('BusinessPath', 'IArrow'),
+ ('BusinessPath', 'ICategoryAccessProvider'),
+ ('TradeModelRule', 'IRule'),
+ ('TradeModelRule', 'IPredicate'),
+ ('TransformationRule', 'IRule'),
+ ('TransformationRule', 'IPredicate'),
+ ('TransformedResource', 'IVariated'),
+]
class TestERP5Interfaces(ERP5TypeTestCase):
"""Test that every class implements interfaces properly"""
-# TODO: Do it automagic way, maybe introspection:
-# Like in testXHTMLStyle add test methods
-# for interface in interface_list:
-# for class in class_list:
-# if interface.implementedBy(class):
-# self.createInterfaceTest(interface, class)
-#
-# and then nice result of declared interfaces
+def makeTestMethod(document, interface):
+ def testMethod(self):
+ _temp = __import__('Products.ERP5Type.Document.%s' % document, globals(),
+ locals(), ['%s' % document])
+ Document = getattr(_temp, document)
+ _temp = __import__('Products.ERP5Type.interfaces', globals(), locals(),
+ ['%s' % interface])
+ Interface = getattr(_temp, interface)
- def test_TradeModelCell_implements_ITransformation(self):
- from Products.ERP5Type.Document.TradeModelCell import TradeModelCell
- from Products.ERP5Type.interfaces import ITransformation
- verifyClass(ITransformation, TradeModelCell)
+ verifyClass(Interface, Document)
- def test_TradeModelCell_implements_IVariated(self):
- from Products.ERP5Type.Document.TradeModelCell import TradeModelCell
- from Products.ERP5Type.interfaces import IVariated
- verifyClass(IVariated, TradeModelCell)
+ return testMethod
- def test_TradeModelLine_implements_ITransformation(self):
- from Products.ERP5Type.Document.TradeModelLine import TradeModelLine
- from Products.ERP5Type.interfaces import ITransformation
- verifyClass(ITransformation, TradeModelLine)
+def addTestMethodDynamically():
+ for document, interface in implements_tuple_list:
+ method_name = 'test_%s_implements_%s' % (document, interface)
+ method = makeTestMethod(document, interface)
+ setattr(TestERP5Interfaces, method_name, method)
- def test_TradeModelLine_implements_IVariated(self):
- from Products.ERP5Type.Document.TradeModelLine import TradeModelLine
- from Products.ERP5Type.interfaces import IVariated
- verifyClass(IVariated, TradeModelLine)
- def test_Transformation_implements_ITransformation(self):
- from Products.ERP5Type.Document.Transformation import Transformation
- from Products.ERP5Type.interfaces import ITransformation
- verifyClass(ITransformation, Transformation)
-
- def test_Transformation_implements_IVariated(self):
- from Products.ERP5Type.Document.Transformation import Transformation
- from Products.ERP5Type.interfaces import IVariated
- verifyClass(IVariated, Transformation)
-
- def test_BusinessPath_implements_IBusinessPath(self):
- from Products.ERP5Type.Document.BusinessPath import BusinessPath
- from Products.ERP5Type.interfaces import IBusinessPath
- verifyClass(IBusinessPath, BusinessPath)
-
- def test_BusinessPath_implements_IArrow(self):
- from Products.ERP5Type.Document.BusinessPath import BusinessPath
- from Products.ERP5Type.interfaces import IArrow
- verifyClass(IArrow, BusinessPath)
-
- def test_BusinessPath_implements_ICategoryAccessProvider(self):
- from Products.ERP5Type.Document.BusinessPath import BusinessPath
- from Products.ERP5Type.interfaces import ICategoryAccessProvider
- verifyClass(ICategoryAccessProvider, BusinessPath)
-
- def test_TradeModelRule_implements_IRule(self):
- from Products.ERP5Type.Document.TradeModelRule import TradeModelRule
- from Products.ERP5Type.interfaces import IRule
- verifyClass(IRule, TradeModelRule)
-
- def test_TradeModelRule_implements_IPredicate(self):
- from Products.ERP5Type.Document.TradeModelRule import TradeModelRule
- from Products.ERP5Type.interfaces import IPredicate
- verifyClass(IPredicate, TradeModelRule)
-
- def test_TransformationRule_implements_IRule(self):
- from Products.ERP5Type.Document.TransformationRule import TransformationRule
- from Products.ERP5Type.interfaces import IRule
- verifyClass(IRule, TransformationRule)
-
- def test_TransformationRule_implements_IPredicate(self):
- from Products.ERP5Type.Document.TransformationRule import TransformationRule
- from Products.ERP5Type.interfaces import IPredicate
- verifyClass(IPredicate, TransformationRule)
-
- def test_TransformedResource_implements_IVariated(self):
- from Products.ERP5Type.Document.TransformedResource import TransformedResource
- from Products.ERP5Type.interfaces import IVariated
- verifyClass(IVariated, TransformedResource)
+addTestMethodDynamically()
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list