Replacing the portal_syndication tool through migration

Martin Aspeli optilude at gmx.net
Sat Aug 11 21:32:23 UTC 2007


Derek Richardson wrote:
> Martin Aspeli wrote:
>> wichert wrote:
>>> Previously Martin Aspeli wrote:
>>>> Derek Richardson wrote:
>>>>> Is there documentation that will show me how to modify or replace the 
>>>>> portal_syndication tool during a migration?
>>>> Maybe not, but look at e.g. Remember and how it mangles portal_setup.
>>> GenericSetup handles it fine: it compares the types for the current tool
>>> and the class you specify in toolset.xml. If they are different it
>>> removes the old tool and puts a new one in its place.
>> Ah, of course, I'd forgotten about toolset.xml. :)
> 
> OK, I'm going down the utility, instead of tool, path. I am working with 
> GenericSetup for the first time, so bear with me. I've created a 
> .../profiles/default/componentregistry.xml file that looks like this:
> 
> <?xml version="1.0"?>
> <componentregistry>
>    <adapters/>
>    <utilities>
>      <utility
>        interface="plone.syndication.outbound.interfaces.IFeedSettings"
>        factory="plone.syndication.outbound.feedsettings.FeedSettings"/>
>    </utilities>
> </componentregistry>
> 
> In my base configure.zcml, I've put:
> 
>      <gs:registerProfile
>          name="default"
>          title="Vice profile"
>          directory="profiles/default"
>          description=""
>          provides="Products.GenericSetup.interfaces.EXTENSION"
>          for="Products.CMFPlone.interfaces.IPloneSiteRoot"    />
> 
> Now, I want to run ftests that depend on gs to register the utility, rather than 
> registering it manually. But, when I run my ftests, I get a
 >
> ComponentLookupError: (<InterfaceClass 
> plone.syndication.outbound.interfaces.IFeedSettings>, '')
> 
> which means the registration isn't taking, I think. What do I have to do to get 
> a gs extension profile applied in an ftest?

Did you actually import the extension profile somewhere in your test setup?

You can pass extension profile names to PloneTestCase.setupPloneSite(), 
or you can call portal_setup.runAllImportStepsFromProfile() yourself.

Or you can install the product with the quickinstaller.

-- 
Acquisition is a jealous mistress





More information about the Product-Developers mailing list