[Product-Developers] testing schemaextender

Héctor Velarde hvelarde at jornada.com.mx
Fri Jan 11 05:11:04 UTC 2008


Martin:

finally my extender is working the way I wanted; thanks for your help, man!

now I'm writing some tests to verify that everything is fine; I found 
one issue and something not working (at least, not for me) in your doctest:

first, *usage.txt* starting on line 142:

     >>> schema = taggable_doc.Schema()
     >>> 'schemaextender_test_tags' in schema
     False
     >>> 'schemaextender_test_highlighted' in schema
     False

this doesn't work at all; I changed to something like this:

class TestNewsItem(JuliusLiteTestCase):
     """ ensure content type implementation """

     def afterSetUp(self):
         self.folder.invokeFactory('News Item', 'news1')
         self.news1 = getattr(self.folder, 'news1')

     def testExtendedFields(self):
         extended_fields = ['property', 'section', 'urgency', 'byline']
         schema = getNames(self.news1.Schema())
         for field in extended_fields:
             self.failUnless(field in schema)

so you're missing the getNames() method.

second, *usage.txt* starting on line 33:

     >>> self.folder.invokeFactory('Document', 'taggable-document')
     'taggable-document'

     >>> taggable_doc = getattr(self.folder, 'taggable-document')
     >>> ITaggable.providedBy(taggable_doc)
     True

this doesn't work for me:

class TestExtender(JuliusLiteTestCase):
     """ ensure extender implementation """

     def afterSetUp(self):
         zope.component.provideAdapter(NITFExtender, 
provides=ISchemaExtender, name=u'Products.nitf4plone.extender')
         self.folder.invokeFactory('News Item', 'news1')
         self.news1 = getattr(self.folder, 'news1')

     def testProvidesSchemaExtender(self):
         self.failUnless(ISchemaExtender.providedBy(self.news1))

     def testProvidesSchemaModifier(self):
         self.failUnless(ISchemaModifier.providedBy(self.news1))

both methods fail.

I tried also:

         #this one fails
         self.failUnless(verifyObject(ISchemaExtender, self.news1))
         #this one pass
         self.failUnless(verifyClass(ISchemaExtender, ATNewsItem))

any hint?

saludos





More information about the Product-Developers mailing list