Changeset 2744 in products


Ignore:
Timestamp:
Aug 12, 2010 11:43:24 AM (14 years ago)
Author:
mylan
Message:

#227: Added test for not override existing schemas extenders

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testNewsSitemaps.py

    r2612 r2744  
    22from DateTime import DateTime 
    33 
     4from zope.component import adapts, provideAdapter 
    45from zope.component import getSiteManager, getGlobalSiteManager 
     6from zope.interface import implements, Interface, classImplements 
     7from archetypes.schemaextender.field import ExtensionField 
    58from archetypes.schemaextender.interfaces import ISchemaExtender 
    69 
    710from Products.CMFPlone.utils import _createObjectByType 
     11from Products.Archetypes.public import StringField 
     12from Products.ATContentTypes.content.newsitem import ATNewsItem 
    813 
    914class TestNewsSitemapsXML(FunctionalTestCase): 
     
    156161        self.assert_("n:stock_tickers" not in self.start.keys()) 
    157162 
    158  
    159 from Products.ATContentTypes.interface import IATNewsItem 
    160 from quintagroup.plonegooglesitemaps.content.newsextender import NewsExtender 
    161163 
    162164class TestSchemaExtending(TestCase): 
     
    189191 
    190192 
     193## 
     194## Mock objects for TestNotOverrideExistingSchemaExtender 
     195## Test Case 
     196## 
     197 
     198class ITestTaggable(Interface): 
     199    """Taggable content 
     200    """ 
     201 
     202class ExtendableStringField(ExtensionField, StringField): 
     203    """An extendable string field.""" 
     204 
     205class TestExtender(object): 
     206    adapts(ITestTaggable) 
     207    implements(ISchemaExtender) 
     208 
     209    def __init__(self, context): 
     210        self.context = context 
     211 
     212    def getFields(self): 
     213        return [ExtendableStringField("testField",),] 
     214 
     215 
     216class TestNotOverrideExistingSchemaExtender(TestCase): 
     217    """ Test if another schemaextender has been defined for the 
     218        IATNewsItem take in account by the system. 
     219    """ 
     220    def prepareContent(self): 
     221         
     222        classImplements(ATNewsItem, ITestTaggable) 
     223        provideAdapter(TestExtender) 
     224 
     225        self.portal.invokeFactory('News Item', 'taggable-news') 
     226        self.taggable_news = getattr(self.portal, 'taggable-news') 
     227 
     228    def testCorrectSchemaExtending(self): 
     229        self.prepareContent() 
     230        self.assert_(ITestTaggable.providedBy(self.taggable_news)) 
     231        schema = self.taggable_news.Schema() 
     232        self.assert_("gsm_access" in schema) 
     233        self.assert_("testField" in schema) 
     234 
     235 
    191236def test_suite(): 
    192237    from unittest import TestSuite, makeSuite 
     
    195240    suite.addTest(makeSuite(TestNewsSitemapsXMLDefaultObject)) 
    196241    suite.addTest(makeSuite(TestSchemaExtending)) 
     242    suite.addTest(makeSuite(TestNotOverrideExistingSchemaExtender)) 
    197243    return suite 
Note: See TracChangeset for help on using the changeset viewer.