Changeset 2939 in products


Ignore:
Timestamp:
Oct 28, 2010 4:26:11 PM (13 years ago)
Author:
mylan
Message:

#228: Remake filter utility to multiadapter, fix tests

Location:
quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps
Files:
1 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps/browser/commonview.py

    r2924 r2939  
    11from string import find 
    22from zope.interface import implements, Interface, Attribute 
    3 from zope.component import queryUtility 
     3from zope.component import queryMultiAdapter 
    44 
    55from Acquisition import aq_inner, aq_parent 
     
    99from quintagroup.plonegooglesitemaps import qPloneGoogleSitemapsMessageFactory as _ 
    1010from quintagroup.plonegooglesitemaps.config import BLACKOUT_PREFIX 
    11 from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilterUtility 
     11from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilter 
    1212from quintagroup.plonegooglesitemaps.browser.utils import additionalURLs, applyOperations 
    1313 
     
    115115            fargs = fspec.pop() 
    116116            fname = BLACKOUT_PREFIX + (fspec and fspec.pop() or "id") 
    117             futility = queryUtility(IBlackoutFilterUtility, name=fname) 
    118             if futility: 
    119                 kw = {"sitemap": self.context, 
    120                       "request": self.request, 
    121                       "extras": fspec} 
    122                 objects = futility.filterOut(objects, fargs, **kw) 
     117            fengine = queryMultiAdapter((self.context, self.request), 
     118                          interface=IBlackoutFilter, name=fname) 
     119            if fengine: 
     120                objects = fengine.filterOut(objects, fargs) 
    123121        return objects 
    124122 
  • quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps/configure.zcml

    r2909 r2939  
    2929        /> 
    3030 
    31     <!-- Register utilities --> 
    32     <utility factory=".utilities.IdBlackoutFilterUtility" 
    33              name="seoptimzier.blackoutfilter.id" 
    34              permission="zope.Public" /> 
     31    <!-- Register default filters --> 
     32    <adapter 
     33        for="* 
     34             zope.publisher.interfaces.browser.IBrowserRequest" 
     35        factory=".filters.IdBlackoutFilter" 
     36        name="seoptimzier.blackoutfilter.id" 
     37        permission="zope.Public" /> 
    3538 
    36     <utility factory=".utilities.PathBlackoutFilterUtility" 
    37              name="seoptimzier.blackoutfilter.path" 
    38              permission="zope.Public" /> 
     39    <adapter 
     40        for="* 
     41             zope.publisher.interfaces.browser.IBrowserRequest" 
     42        factory=".filters.PathBlackoutFilter" 
     43        name="seoptimzier.blackoutfilter.path" 
     44        permission="zope.Public" /> 
    3945 
    4046 
  • quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps/interfaces.py

    r2909 r2939  
    2222    """Marker interface that defines browser layer for the package.""" 
    2323 
    24 class IBlackoutFilterUtility(Interface): 
    25     """Base interface for filter utility.""" 
     24class IBlackoutFilter(Interface): 
     25    """Base interface for filter adapter.""" 
    2626 
    27     def filterOut(fdata, fkey, **kwargs): 
     27    def filterOut(fdata, fargs): 
    2828        """Filter out fdata by passed arguments in kwargs. 
    29             * fdata (list/tuple) - is data to filtering. 
    30             * fkey (string) - is key for filtering. 
    31             * **kwargs - contains additional data, needed for filtering. 
     29            * fdata (list/tuple) - data for filtering 
     30              (list of catalog brains). 
     31            * fargs (string) - is key for filtering. 
    3232           Return list/tuple like object without filtered out items. 
    3333        """ 
  • quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps/tests/testBlackoutList.py

    r2925 r2939  
    44from base import * 
    55from types import ListType, TupleType 
    6 from zope.component import queryUtility, queryMultiAdapter 
     6from zope.component import queryMultiAdapter 
    77 
    88from Products.CMFPlone.utils import _createObjectByType 
    99from quintagroup.plonegooglesitemaps.config import BLACKOUT_PREFIX 
    10 from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilterUtility 
     10from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilter 
    1111 
    1212idfname = BLACKOUT_PREFIX + "id" 
    1313pathfname = BLACKOUT_PREFIX + "path" 
    1414 
    15 class TestBOFilterUtilities(TestCase): 
     15class TestBOFilters(TestCase): 
    1616 
    17     def testDefaultIdUtility(self): 
    18         self.assertTrue(queryUtility(IBlackoutFilterUtility, name=idfname) is not None, 
    19             "Not registered default '%s' IBlackoutFilterUtility" % idfname) 
     17    def testDefaultId(self): 
     18        idfilter = queryMultiAdapter((self.portal, self.app.REQUEST), 
     19                       IBlackoutFilter, name=idfname) 
     20        self.assertTrue(idfilter is not None, 
     21            "Not registered default '%s' IBlackoutFilter" % idfname) 
    2022 
    21     def testDefaultPathUtility(self): 
    22         self.assertTrue(queryUtility(IBlackoutFilterUtility, name=pathfname) is not None, 
    23             "Not registered default '%s' IBlackoutFilterUtility" % pathfname) 
     23    def testDefaultPath(self): 
     24        pathfilter = queryMultiAdapter((self.portal, self.app.REQUEST), 
     25                         IBlackoutFilter, name=pathfname) 
     26        self.assertTrue(pathfilter is not None, 
     27            "Not registered default '%s' IBlackoutFilter" % pathfname) 
    2428 
    2529 
     
    4650 
    4751    def getPreparedLists(self, fname, fargs): 
    48         futil = queryUtility(IBlackoutFilterUtility, name=fname) 
    49         filtered = [f.getPath() for f in futil.filterOut(self.catres, fkey=fargs, 
    50                     sitemap=self.sm, request=self.req)] 
     52        fengine = queryMultiAdapter((self.sm, self.req), IBlackoutFilter, name=fname) 
     53        filtered = [f.getPath() for f in fengine.filterOut(self.catres, fargs)] 
    5154        catpaths = [c.getPath() for c in self.catres] 
    5255        return catpaths, filtered 
     
    129132    from unittest import TestSuite, makeSuite 
    130133    suite = TestSuite() 
    131     suite.addTest(makeSuite(TestBOFilterUtilities)) 
     134    suite.addTest(makeSuite(TestBOFilters)) 
    132135    suite.addTest(makeSuite(TestDefaultFilters)) 
    133136    suite.addTest(makeSuite(TestBlacklistFormProcessing)) 
Note: See TracChangeset for help on using the changeset viewer.