Changeset 3152 in products


Ignore:
Timestamp:
Apr 20, 2011 8:20:36 AM (9 years ago)
Author:
zidane
Message:

fixes pep8

Location:
quintagroup.plonegooglesitemaps/trunk
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/Extensions/Install.py

    r2408 r3152  
    66PROFILE = "profile-quintagroup.plonegooglesitemaps:default" 
    77UNINSTALL = "profile-quintagroup.plonegooglesitemaps:uninstall" 
     8 
    89 
    910def install(self, reinstall=False): 
     
    1920        step = None 
    2021        profile_id = 'quintagroup.plonegooglesitemaps:default' 
    21         steps_to_run = [s['id'] for s in ps.listUpgrades(profile_id, show_old=False)] 
     22        steps_to_run = [s['id'] for s in \ 
     23                        ps.listUpgrades(profile_id, show_old=False)] 
    2224        for step_id in steps_to_run: 
    2325            step = _upgrade_registry.getUpgradeStep(profile_id, step_id) 
    2426            step.doStep(ps) 
    25             msg = "Ran upgrade step %s for profile %s" % (step.title, profile_id) 
     27            msg = "Ran upgrade step %s for profile %s" \ 
     28                  % (step.title, profile_id) 
    2629            logger.log(logging.INFO, msg) 
    2730        # We update the profile version to the last one we have reached 
    2831        # with running an upgrade step. 
    2932        if step and step.dest is not None and step.checker is None: 
    30            ps.setLastVersionForProfile(profile_id, step.dest) 
     33            ps.setLastVersionForProfile(profile_id, step.dest) 
    3134        return "Ran all reinstall steps." 
    3235 
     
    4447    """ Uninstall this product. 
    4548 
    46         This external method is need, because portal_quickinstaller doens't know 
    47         what GenericProfile profile to apply when uninstalling a product. 
     49        This external method is need, because portal_quickinstaller doens't 
     50        know what GenericProfile profile to apply when uninstalling a product. 
    4851    """ 
    4952    setup_tool = getToolByName(portal, 'portal_setup') 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/Extensions/ping_googlesitemap.py

    r1593 r3152  
    11from zope.event import notify 
    22from quintagroup.plonegooglesitemaps.events import AfterTransitionEvent 
     3 
    34 
    45def pingGoogleSitemap(stch): 
     
    78           stch.transition, stch.status, stch.kwargs)) 
    89    return 0 
    9  
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/__init__.py

    r2841 r3152  
    1717 
    1818qPloneGoogleSitemapsMessageFactory = MessageFactory('qPloneGoogleSitemaps') 
     19 
    1920 
    2021def initialize(context): 
     
    4849    for atype, constructor in zip(content_types, constructors): 
    4950        ContentInit('%s: %s' % (config.PROJECTNAME, atype.portal_type), 
    50             content_types      = (atype,), 
    51             permission         = config.ADD_PERMISSIONS[atype.portal_type], 
    52             extra_constructors = (constructor,), 
    53             ).initialize(context) 
     51                    content_types=(atype,), 
     52                    permission=config.ADD_PERMISSIONS[atype.portal_type], 
     53                    extra_constructors=(constructor,), 
     54                   ).initialize(context) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/commonview.py

    r3002 r3152  
    77from Products.CMFCore.utils import getToolByName 
    88 
    9 from quintagroup.plonegooglesitemaps import qPloneGoogleSitemapsMessageFactory as _ 
     9from quintagroup.plonegooglesitemaps \ 
     10    import qPloneGoogleSitemapsMessageFactory as _ 
    1011from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilter 
    11 from quintagroup.plonegooglesitemaps.browser.utils import additionalURLs, applyOperations 
     12from quintagroup.plonegooglesitemaps.browser.utils import additionalURLs, \ 
     13    applyOperations 
    1214 
    1315 
     
    3335    numEntries = Attribute("Return number of entries") 
    3436 
     37 
    3538class CommonSitemapView(BrowserView): 
    3639    """ 
     
    4245    # with mapping data 
    4346    additional_maps = () 
    44  
    4547 
    4648    def __init__(self, context, request): 
     
    7577        # Prepare dictionary for view 
    7678        for url, b in brain_url_map.items(): 
    77             res_map = {'url' : url,} 
    78             [res_map.update({k : f(b)}) for k, f in self.additional_maps] 
     79            res_map = {'url': url, } 
     80            [res_map.update({k: f(b)}) for k, f in self.additional_maps] 
    7981            result.append(res_map) 
    8082        self.num_entries = len(result) 
     
    9193          4|  path:./folder_near_sitemap/obj_in_folder 
    9294          5|  foo_filter:arg-1, arg-2 
    93           
     95 
    9496          1->used default "id" filter - remove "index.html" objects; 
    9597          2->explicit "id" filter - remove "index.html" objects; 
    9698          3->"path" filter - remove /folder_1_level/obj_in_folder object, 
    9799              path from the root of the plone site; 
    98           4->same to 3), but path get from the folder, where sitemap is located; 
     100          4->same to 3), but path get from the folder, where sitemap is 
     101             located; 
    99102          5->filter name is "foo_filter" (must be registered IBlackoutFilter, 
    100103             named "foo_filter"), which get filter arguments: arg-1, arg-2 
    101           
     104 
    102105          Detailed explanation look in filters.txt doctest. 
    103         """  
     106        """ 
    104107        blackout_list = self.context.getBlackout_list() 
    105108        for frec in blackout_list: 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/configletview.py

    r3006 r3152  
    88 
    99from quintagroup.plonegooglesitemaps.interfaces import ISitemap 
    10 from quintagroup.plonegooglesitemaps import qPloneGoogleSitemapsMessageFactory as _ 
     10from quintagroup.plonegooglesitemaps \ 
     11    import qPloneGoogleSitemapsMessageFactory as _ 
     12 
    1113 
    1214def splitNum(num): 
     
    1416    prefn = 3 
    1517    for c in str(num)[::-1]: 
    16         res.insert(0,c) 
    17         if not len(res)%prefn: 
    18             res.insert(0,',') 
     18        res.insert(0, c) 
     19        if not len(res) % prefn: 
     20            res.insert(0, ',') 
    1921            prefn += 4 
    20     return "".join(res[0]==',' and res[1:] or res) 
     22    return "".join(res[0] == ',' and res[1:] or res) 
     23 
    2124 
    2225class IConfigletSettingsView(Interface): 
     
    2528    """ 
    2629 
    27     sitemaps = Attribute("Returns mapping of sitemap's type to list of appropriate objects") 
    28     hasContentSM = Attribute("Returns boolean about existance of content sitemap") 
    29     hasMobileSM = Attribute("Returns boolean about existance of mobile sitemap") 
     30    sitemaps = Attribute("Returns mapping of sitemap's type to list of " \ 
     31                         "appropriate objects") 
     32    hasContentSM = Attribute("Returns boolean about existance of content " \ 
     33                             "sitemap") 
     34    hasMobileSM = Attribute("Returns boolean about existance of mobile " \ 
     35                            "sitemap") 
    3036    hasNewsSM = Attribute("Returns boolean about existance of news sitemap") 
    3137    sm_types = Attribute("List of sitemap types") 
     
    4652    def uploadVerificationFile(vfile): 
    4753        """ Upload passed site verification file to the site. 
    48             On success - update googlesitemaps verification files list.  
     54            On success - update googlesitemaps verification files list. 
    4955            Return tuple where : 
    5056              1. boolean value - is verification file successfully created. 
     
    5359                2.2. if failure - error descirption 
    5460        """ 
     61 
    5562 
    5663class ConfigletSettingsView(BrowserView): 
     
    6572        self.request = request 
    6673 
    67         self.tools = queryMultiAdapter((self.context, self.request), name="plone_tools") 
    68         self.pps = queryMultiAdapter((self.context, self.request), name="plone_portal_state") 
    69         self.sitemaps = [i.getObject() for i in self.tools.catalog()(portal_type='Sitemap')] 
     74        self.tools = queryMultiAdapter((self.context, self.request), 
     75                                       name="plone_tools") 
     76        self.pps = queryMultiAdapter((self.context, self.request), 
     77                                     name="plone_portal_state") 
     78        self.sitemaps = [i.getObject() for i in \ 
     79                         self.tools.catalog()(portal_type='Sitemap')] 
    7080 
    7181    @property 
     
    8898        sitemaps = {} 
    8999        for sm in self.sitemaps: 
    90             smlist = sitemaps.setdefault(sm.getSitemapType(),[]) 
    91             smlist.append({'url':sm.absolute_url(),'id':sm.id}) 
    92         sitemaps['all'] = sitemaps.setdefault('content',[]) + \ 
    93                           sitemaps.setdefault('mobile',[]) + \ 
    94                           sitemaps.setdefault('news',[]) 
     100            smlist = sitemaps.setdefault(sm.getSitemapType(), []) 
     101            smlist.append({'url': sm.absolute_url(), 'id': sm.id}) 
     102        sitemaps['all'] = sitemaps.setdefault('content', []) + \ 
     103                          sitemaps.setdefault('mobile', []) + \ 
     104                          sitemaps.setdefault('news', []) 
    95105        return sitemaps 
    96106 
     
    98108        sitemaps = {} 
    99109        for sm in self.sitemaps: 
    100             smlist = sitemaps.setdefault(sm.getSitemapType(),[]) 
     110            smlist = sitemaps.setdefault(sm.getSitemapType(), []) 
    101111            smlist.append(sm.absolute_url()) 
    102112        return sitemaps 
    103113 
    104114    def sitemapsDict(self): 
    105         content, mobile, news = [],[],[] 
     115        content, mobile, news = [], [], [] 
    106116        for sm in self.sitemaps: 
    107117            data = self.getSMData(sm) 
     
    116126    def getSMData(self, ob): 
    117127        size, entries = self.getSitemapData(ob) 
    118         return {'sm_type'    : ob.getSitemapType().capitalize(), 
    119                 'sm_id'      : ob.id, 
    120                 'sm_url'     : ob.absolute_url(), 
    121                 'sm_size'    : size and splitNum(size) or '', 
    122                 'sm_entries' : entries and splitNum(entries) or '', 
     128        return {'sm_type': ob.getSitemapType().capitalize(), 
     129                'sm_id': ob.id, 
     130                'sm_url': ob.absolute_url(), 
     131                'sm_size': size and splitNum(size) or '', 
     132                'sm_entries': entries and splitNum(entries) or '', 
    123133               } 
    124134 
     
    128138        if view: 
    129139            resp = self.request.RESPONSE 
    130             bview = queryMultiAdapter((ob,self.request), name=view) 
     140            bview = queryMultiAdapter((ob, self.request), name=view) 
    131141            if bview: 
    132142                try: 
    133143                    size = len(bview()) 
    134144                    entries = bview.numEntries 
    135                     self.request.RESPONSE.setHeader('Content-Type', 'text/html') 
     145                    self.request.RESPONSE.setHeader('Content-Type', 
     146                                                    'text/html') 
    136147                except: 
    137148                    pass 
     
    140151    def getVerificationFiles(self): 
    141152        vfs = [] 
    142         props = getattr(self.tools.properties(),'googlesitemap_properties') 
     153        props = getattr(self.tools.properties(), 'googlesitemap_properties') 
    143154        if props: 
    144155            portal_ids = self.pps.portal().objectIds() 
    145             props_vfs = list(props.getProperty('verification_filenames',[])) 
     156            props_vfs = list(props.getProperty('verification_filenames', [])) 
    146157            vfs = [vf for vf in props_vfs if vf in portal_ids] 
    147             if not props_vfs==vfs: 
     158            if not props_vfs == vfs: 
    148159                props._updateProperty('verification_filenames', vfs) 
    149160        return vfs 
     
    157168            portal.manage_addFile(id="", file=vfile) 
    158169            portal[vfilename].manage_addProperty( 
    159                 'CreatedBy', 'quintagroupt.plonegooglesitemaps','string') 
     170                'CreatedBy', 'quintagroupt.plonegooglesitemaps', 'string') 
    160171        except BadRequestException, e: 
    161172            return False, str(e) 
    162173        else: 
    163174            props = self.tools.properties().googlesitemap_properties 
    164             vfilenames = list(props.getProperty('verification_filenames',[])) 
     175            vfilenames = list(props.getProperty('verification_filenames', [])) 
    165176            vfilenames.append(vfilename) 
    166             props.manage_changeProperties(verification_filenames = vfilenames) 
     177            props.manage_changeProperties(verification_filenames=vfilenames) 
    167178        return True, vfilename 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/mobilesitemapview.py

    r2742 r3152  
    22from quintagroup.plonegooglesitemaps.browser.commonview import * 
    33 
    4 MOBILE_INTERFACES = ['quintagroup.mobileextender.interfaces.IMobile',] 
     4MOBILE_INTERFACES = ['quintagroup.mobileextender.interfaces.IMobile', ] 
     5 
    56 
    67class MobileSitemapView(CommonSitemapView): 
     
    1112 
    1213    additional_maps = ( 
    13         ('modification_date', lambda x:DateTime(x.ModificationDate).HTML4()), 
     14        ('modification_date', lambda x: DateTime(x.ModificationDate).HTML4()), 
    1415    ) 
    1516 
    1617    def getFilteredObjects(self): 
    1718        return self.portal_catalog( 
    18             path = self.search_path, 
    19             portal_type = self.context.getPortalTypes(), 
    20             review_state = self.context.getStates(), 
    21             object_provides = MOBILE_INTERFACES, 
     19            path=self.search_path, 
     20            portal_type=self.context.getPortalTypes(), 
     21            review_state=self.context.getStates(), 
     22            object_provides=MOBILE_INTERFACES, 
    2223            ) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/newssitemapview.py

    r2751 r3152  
    77reTrailingParenthtical = re.compile("\s*\(.*\)\s*", re.S) 
    88 
    9 formatDate = lambda d:DateTime(d).strftime("%Y-%m-%d") 
     9formatDate = lambda d: DateTime(d).strftime("%Y-%m-%d") 
     10 
    1011 
    1112class NewsSitemapView(CommonSitemapView): 
     
    1718    @property 
    1819    def additional_maps(self): 
    19          
     20 
    2021        return ( 
    21             ('publication_date', lambda x:x.Date and formatDate(x.Date) or ""), 
    22             ('keywords', lambda x:x.Subject and ', '.join(x.Subject) or ""), 
    23             ('title', lambda x:x.Title or x.getId or x.id), 
    24             ('name', lambda x:x.Title and reTrailingParenthtical.sub("",x.Title) or ""), 
    25             ('language', lambda x:x.Language or self.default_language()), 
    26             ('access', lambda x:x.gsm_access or ""), 
    27             ('genres', lambda x:x.gsm_genres and ", ".join(x.gsm_genres) or ""), 
    28             ('stock', lambda x:x.gsm_stock or ""), 
     22            ('publication_date', lambda x: x.Date and \ 
     23                                 formatDate(x.Date) or ""), 
     24            ('keywords', lambda x: x.Subject and ', '.join(x.Subject) or ""), 
     25            ('title', lambda x: x.Title or x.getId or x.id), 
     26            ('name', lambda x: x.Title and \ 
     27                     reTrailingParenthtical.sub("", x.Title) or ""), 
     28            ('language', lambda x: x.Language or self.default_language()), 
     29            ('access', lambda x: x.gsm_access or ""), 
     30            ('genres', lambda x: x.gsm_genres and \ 
     31                       ", ".join(x.gsm_genres) or ""), 
     32            ('stock', lambda x: x.gsm_stock or ""), 
    2933        ) 
    3034 
    3135    @memoize 
    3236    def default_language(self): 
    33         pps = getMultiAdapter((self.context, self.request), name="plone_portal_state") 
     37        pps = getMultiAdapter((self.context, self.request), 
     38                              name="plone_portal_state") 
    3439        return pps.default_language 
    3540 
     
    3742        min_date = DateTime() - 3 
    3843        return self.portal_catalog( 
    39             path = self.search_path, 
    40             portal_type = self.context.getPortalTypes(), 
    41             review_state = self.context.getStates(), 
    42             effective = {"query": min_date, 
    43                          "range": "min" } 
     44            path=self.search_path, 
     45            portal_type=self.context.getPortalTypes(), 
     46            review_state=self.context.getStates(), 
     47            effective={"query": min_date, 
     48                       "range": "min"} 
    4449            ) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/sitemapview.py

    r2742 r3152  
    11from DateTime import DateTime 
    22from quintagroup.plonegooglesitemaps.browser.commonview import * 
     3 
    34 
    45class SitemapView(CommonSitemapView): 
     
    910 
    1011    additional_maps = ( 
    11         ('modification_date', lambda x:DateTime(x.ModificationDate).HTML4()), 
     12        ('modification_date', lambda x: DateTime(x.ModificationDate).HTML4()), 
    1213    ) 
    1314 
    1415    def getFilteredObjects(self): 
    1516        return self.portal_catalog( 
    16             path = self.search_path, 
    17             portal_type = self.context.getPortalTypes(), 
    18             review_state = self.context.getStates() 
     17            path=self.search_path, 
     18            portal_type=self.context.getPortalTypes(), 
     19            review_state=self.context.getStates() 
    1920            ) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/browser/utils.py

    r2181 r3152  
    1414_marker = [] 
    1515 
     16 
    1617def searchAndReplace(string, what, withs): 
    1718    """Emulate sed command s/""" 
    18     res = re.sub(what,withs,string) 
     19    res = re.sub(what, withs, string) 
    1920    return res 
    20 OPERATORS = {'s': searchAndReplace,} 
     21OPERATORS = {'s': searchAndReplace, } 
     22 
    2123 
    2224def applyOperations(objects, operations): 
    2325    """Parse Operations """ 
    24     operations=[OPERATIONS_PARSE.match(op).groups() for op in operations] 
     26    operations = [OPERATIONS_PARSE.match(op).groups() for op in operations] 
    2527    result = {} 
    2628    for ob in objects: 
     
    3840        if url in result.keys(): 
    3941            continue 
    40         #TODO: replace brain with only data necessary to  
     42        #TODO: replace brain with only data necessary to 
    4143        #generate sitemap 
    42         result[url]=ob 
     44        result[url] = ob 
    4345    return result 
     46 
    4447 
    4548def additionalURLs(context): 
     
    4952    plone_home = getToolByName(context, 'portal_url')() 
    5053    root = context.getPhysicalRoot().absolute_url() 
    51     URLs =  context.getUrls() 
     54    URLs = context.getUrls() 
    5255 
    5356    for url in URLs: 
    5457        if ADD_ZOPE.match(url): 
    55             res.append(root+url) 
     58            res.append(root + url) 
    5659        elif ADD_PLONE.match(url): 
    57             res.append(plone_home+'/'+url) 
     60            res.append(plone_home + '/' + url) 
    5861        else: 
    5962            res.append(url) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/config.py

    r2841 r3152  
    1010 
    1111SITEMAPS_VIEW_MAP = { 
    12     'content'   : 'sitemap.xml', 
    13     'mobile'    : 'mobile-sitemap.xml', 
    14     'news'      : 'news-sitemap.xml' 
     12    'content': 'sitemap.xml', 
     13    'mobile': 'mobile-sitemap.xml', 
     14    'news': 'news-sitemap.xml' 
    1515} 
    1616 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/content/newsextender.py

    r2746 r3152  
    1313from quintagroup.plonegooglesitemaps.interfaces import INewsSitemapProvider 
    1414 
     15 
    1516class ExtendableStringField(ExtensionField, StringField): 
    1617    """An extendable string field.""" 
     18 
    1719 
    1820class ExtendableLinesField(ExtensionField, LinesField): 
     
    2022 
    2123access_lst = ["Subscription", "Registration"] 
    22 genres_lst = ["PressRelease","Satire","Blog","OpEd","Opinion","UserGenerated"] 
     24genres_lst = ["PressRelease", "Satire", "Blog", "OpEd", "Opinion", \ 
     25              "UserGenerated"] 
     26 
    2327 
    2428class NewsExtender(object): 
     
    2933        ExtendableStringField("gsm_access", 
    3034            accessor="gsm_access", 
    31             vocabulary=DisplayList(zip(["",]+access_lst, ["Open access",]+access_lst)), 
     35            vocabulary=DisplayList(zip(["", ] + access_lst, \ 
     36                                   ["Open access", ] + access_lst)), 
    3237            default="", 
    3338            schemata="GoogleSitemap", 
    34             widget = SelectionWidget( 
     39            widget=SelectionWidget( 
    3540                label="Access", 
    36                 description="Specifies whether an article is available to all " \ 
    37                     "readers (in case of the emtpy field, or only to those " \ 
    38                     "with a free or paid membership to your site.", 
     41                description="Specifies whether an article is available to " \ 
     42                    "all readers (in case of the emtpy field, or only to " \ 
     43                    "those with a free or paid membership to your site.", 
    3944                format="radio"), 
    4045        ), 
     
    4449            schemata="GoogleSitemap", 
    4550            default=(), 
    46             widget = MultiSelectionWidget( 
     51            widget=MultiSelectionWidget( 
    4752                label="Genres", 
    4853                description="Select one or more properties for an article, " \ 
    4954                    "namely, whether it is a press release, a blog post, an " \ 
    50                     "opinion, an op-ed piece, user-generated content, or satire.", 
     55                    "opinion, an op-ed piece, user-generated content, " \ 
     56                    "or satire.", 
    5157                format="checkbox"), 
    5258        ), 
     
    5561            default="", 
    5662            schemata="GoogleSitemap", 
    57             widget = StringWidget( 
     63            widget=StringWidget( 
    5864                label="Stock Tickers", 
    5965                description="A comma-separated list of up to 5 stock tickers "\ 
    60                     "of the companies, mutual funds, or other financial entities "\ 
    61                     "that are the main subject of the article. Relevant primarily "\ 
    62                     "for business articles. Each ticker must be prefixed by the "\ 
    63                     "name of its stock exchange, and must match its entry in "\ 
    64                     "Google Finance. For example, \"NASDAQ:AMAT\" (but not "\ 
    65                     "\"NASD:AMAT\"), or \"BOM:500325\" (but not \"BOM:RIL\").", 
     66                    "of the companies, mutual funds, or other financial " \ 
     67                    "entities that are the main subject of the article. " \ 
     68                    "Relevant primarily for business articles. Each ticker " \ 
     69                    "must be prefixed by the name of its stock exchange, " \ 
     70                    "and must match its entry in Google Finance. " \ 
     71                    "For example, \"NASDAQ:AMAT\" (but not \"NASD:AMAT\"), " \ 
     72                    "or \"BOM:500325\" (but not \"BOM:RIL\").", 
    6673                size=70), 
    6774        ), 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/content/sitemap.py

    r3066 r3152  
    1010from Products.CMFCore.utils import getToolByName 
    1111 
    12 from quintagroup.plonegooglesitemaps import qPloneGoogleSitemapsMessageFactory as _ 
     12from quintagroup.plonegooglesitemaps \ 
     13    import qPloneGoogleSitemapsMessageFactory as _ 
    1314from quintagroup.plonegooglesitemaps.interfaces import ISitemap 
    14 from quintagroup.plonegooglesitemaps.config import *  
     15from quintagroup.plonegooglesitemaps.config import * 
    1516 
    1617SitemapSchema = schemata.ATContentTypeSchema.copy() + atapi.Schema(( 
     
    1920    atapi.StringField( 
    2021        name='sitemapType', 
    21         storage = atapi.AnnotationStorage(), 
     22        storage=atapi.AnnotationStorage(), 
    2223        required=True, 
    2324        default='content', 
     
    2526        widget=atapi.SelectionWidget( 
    2627            label=_(u"Sitemap type"), 
    27             visible = {'edit':'invisible', 'view':'invisible'}, 
     28            visible={'edit': 'invisible', 'view': 'invisible'}, 
    2829            description=_(u"Select Type of the sitemap."), 
    2930        ), 
     
    3132    atapi.LinesField( 
    3233        name='portalTypes', 
    33         storage = atapi.AnnotationStorage(), 
     34        storage=atapi.AnnotationStorage(), 
    3435        required=True, 
    35         default=['Document',], 
     36        default=['Document', ], 
    3637        vocabulary_factory="plone.app.vocabularies.ReallyUserFriendlyTypes", 
    3738        #schemata ='default', 
     
    4344    atapi.LinesField( 
    4445        name='states', 
    45         storage = atapi.AnnotationStorage(), 
     46        storage=atapi.AnnotationStorage(), 
    4647        required=True, 
    47         default=['published',], 
     48        default=['published', ], 
    4849        vocabulary="getWorkflowStates", 
    4950        #schemata ='default', 
    5051        widget=atapi.MultiSelectionWidget( 
    5152            label=_(u"Review status"), 
    52             description=_(u"You may include items in sitemap depend of their " \ 
    53                           u"review state."), 
     53            description=_(u"You may include items in sitemap depend of " \ 
     54                          u"their review state."), 
    5455        ), 
    5556    ), 
    5657    atapi.LinesField( 
    5758        name='blackout_list', 
    58         storage = atapi.AnnotationStorage(), 
     59        storage=atapi.AnnotationStorage(), 
    5960        required=False, 
    6061        #default='', 
     
    6364            label=_(u"Blackout entries"), 
    6465            description=_( 
    65               u"Objects which match filter condition will be excluded from the sitemap." \ 
    66               u"Every record should follow the spec: [<filter name>:]<filter arguments>."\ 
    67               u" By default there are \"id\" and \"path\" filters (\"id\" used if filter"\ 
    68               u" name not specified). There is possibility to add new filters. "\ 
    69               u"Look into README.txt of the quintagroup.plonegooglesitemaps package."), 
     66                u"Objects which match filter condition will be excluded " \ 
     67                u"from the sitemap.Every record should follow the spec: " \ 
     68                u"[<filter name>:]<filter arguments>. By default there are " \ 
     69                u"\"id\" and \"path\" filters (\"id\" used if filter name " \ 
     70                u"not specified). There is possibility to add new filters. " \ 
     71                u"Look into README.txt of the " \ 
     72                u"quintagroup.plonegooglesitemaps package."), 
    7073        ), 
    7174    ), 
    7275    atapi.LinesField( 
    7376        name='reg_exp', 
    74         storage = atapi.AnnotationStorage(), 
     77        storage=atapi.AnnotationStorage(), 
    7578        required=False, 
    7679        #default='', 
     
    8386                          u"\"s/\/index_html//\" will remove /index_html " \ 
    8487                          u"from URLs representing default documents. " \ 
    85                           u"Example 2: \"s/[you_site\/internal\/path]/[domain]/\" will " \ 
     88                          u"Example 2: " \ 
     89                          u"\"s/[you_site\/internal\/path]/[domain]/\" will " \ 
    8690                          u"fix URLs in the sitemap in case they are " \ 
    8791                          u"generated on the basis of your site internal" \ 
     
    9296    atapi.LinesField( 
    9397        name='urls', 
    94         storage = atapi.AnnotationStorage(), 
     98        storage=atapi.AnnotationStorage(), 
    9599        required=False, 
    96100        #default='', 
     
    104108    atapi.LinesField( 
    105109        name='pingTransitions', 
    106         storage = atapi.AnnotationStorage(), 
     110        storage=atapi.AnnotationStorage(), 
    107111        required=False, 
    108112        vocabulary='getWorkflowTransitions', 
     
    110114        widget=atapi.MultiSelectionWidget( 
    111115            label=_(u"Pinging workflow transitions"), 
    112             description=_(u"Select workflow transitions for pinging google on."), 
     116            description=_(u"Select workflow transitions for pinging " \ 
     117                          u"google on."), 
    113118        ), 
    114119    ), 
     
    121126SitemapSchema['id'].widget.ignore_visible_ids = True 
    122127SitemapSchema['title'].storage = atapi.AnnotationStorage() 
    123 SitemapSchema['title'].required=False 
    124 SitemapSchema['title'].widget.visible = {'edit':'invisible', 'view':'invisible'} 
     128SitemapSchema['title'].required = False 
     129SitemapSchema['title'].widget.visible = {'edit': 'invisible', 
     130                                         'view': 'invisible'} 
    125131SitemapSchema['description'].storage = atapi.AnnotationStorage() 
    126 SitemapSchema['description'].widget.visible = {'edit':'invisible', 'view':'invisible'} 
     132SitemapSchema['description'].widget.visible = {'edit': 'invisible', 
     133                                               'view': 'invisible'} 
    127134 
    128135schemata.finalizeATCTSchema(SitemapSchema, moveDiscussion=False) 
    129 SitemapSchema['relatedItems'].schemata='metadata' 
    130 SitemapSchema['relatedItems'].widget.visible = {'edit':'invisible', 'view':'invisible'} 
     136SitemapSchema['relatedItems'].schemata = 'metadata' 
     137SitemapSchema['relatedItems'].widget.visible = {'edit': 'invisible', 
     138                                                'view': 'invisible'} 
     139 
    131140 
    132141class Sitemap(base.ATCTContent): 
     
    146155 
    147156    def getWorkflowStates(self): 
    148         pw = getToolByName(self,'portal_workflow') 
    149         states = list(set([v for k,v in pw.listWFStatesByTitle()])) 
     157        pw = getToolByName(self, 'portal_workflow') 
     158        states = list(set([v for k, v in pw.listWFStatesByTitle()])) 
    150159        states.sort() 
    151160        return atapi.DisplayList(zip(states, states)) 
     
    153162    def getWorkflowTransitions(self): 
    154163        wf_trans = [] 
    155         pw = getToolByName(self,'portal_workflow') 
     164        pw = getToolByName(self, 'portal_workflow') 
    156165        for wf_id in pw.getWorkflowIds(): 
    157166            wf = pw.getWorkflowById(wf_id) 
     
    160169            for wf_tr in wf.transitions.values(): 
    161170                if wf_tr.after_script_name in AVAILABLE_WF_SCRIPTS: 
    162                     wf_trans.append(("%s#%s" % (wf_id,wf_tr.id), 
    163                         "%s : %s (%s)" % (wf_id,wf_tr.id,wf_tr.title_or_id()))) 
     171                    wf_trans.append(("%s#%s" % (wf_id, wf_tr.id), 
     172                        "%s : %s (%s)" % (wf_id, wf_tr.id, \ 
     173                                          wf_tr.title_or_id()))) 
    164174        return atapi.DisplayList(wf_trans) 
    165175 
     
    173183        val = filter(None, map(string.strip, value)) 
    174184        self.getField('blackout_list').set(self, val) 
    175          
     185 
    176186 
    177187atapi.registerType(Sitemap, PROJECTNAME) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/events.py

    r1593 r3152  
    1010        implements(ITransitionEvent) 
    1111 
    12         def __init__(self, obj, workflow, old_state, new_state, transition, status, kwargs): 
     12        def __init__(self, obj, workflow, old_state, new_state, transition, \ 
     13                     status, kwargs): 
    1314            ObjectEvent.__init__(self, obj) 
    1415            self.workflow = workflow 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/filters.py

    r3002 r3152  
    1616    def filterOut(self, fdata, fargs): 
    1717        """Filter-out fdata list by id in fargs.""" 
    18         return ifilter(lambda b,fa=fargs:(b.getId or b.id) != fargs, 
     18        return ifilter(lambda b, fa=fargs: (b.getId or b.id) != fargs, 
    1919                       fdata) 
    2020 
     
    4444            return fdata 
    4545 
    46         return ifilter(lambda b,tp=test_path: b.getPath() != tp, 
     46        return ifilter(lambda b, tp=test_path: b.getPath() != tp, 
    4747                       fdata) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/handlers.py

    r1593 r3152  
    55from quintagroup.plonegooglesitemaps.utils import ping_google 
    66 
     7 
    78@adapter(IAfterTransitionEvent) 
    89def pingGoogle(event): 
    9     tr_id = getattr(event.transition,'id','') 
     10    tr_id = getattr(event.transition, 'id', '') 
    1011    if not tr_id: 
    1112        # object under creation 
     
    1718    sitemaps = [b.getObject() for b in catalog(portal_type='Sitemap')] 
    1819    if sitemaps: 
    19         plone_home = getToolByName(object, 'portal_url').getPortalObject().absolute_url() 
     20        url = getToolByName(object, 'portal_url') 
     21        plone_home = url.getPortalObject().absolute_url() 
    2022        wftrans_name = "%s#%s" % (event.workflow.id, tr_id) 
    2123        obj_ptype = object.portal_type 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/interfaces.py

    r3002 r3152  
    88from plone.browserlayer.interfaces import ILocalBrowserLayerType 
    99 
    10 from quintagroup.plonegooglesitemaps import qPloneGoogleSitemapsMessageFactory as _ 
     10from quintagroup.plonegooglesitemaps \ 
     11    import qPloneGoogleSitemapsMessageFactory as _ 
    1112 
    1213# -*- extra stuff goes here -*- 
    1314 
     15 
    1416class ISitemap(Interface): 
    1517    """Search engine Sitemap content type.""" 
     18 
    1619 
    1720class INewsSitemapProvider(Interface): 
     
    2124class IGoogleSitemapsLayer(ILocalBrowserLayerType): 
    2225    """Marker interface that defines browser layer for the package.""" 
     26 
    2327 
    2428class IBlackoutFilter(Interface): 
     
    3236           Return list/tuple like object without filtered out items. 
    3337        """ 
    34  
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/setuphandlers.py

    r2841 r3152  
    1111 
    1212logger = logging.getLogger('quintagroup.plonegooglesitemaps') 
     13 
    1314 
    1415def unregisterSchemaExtenderAdapters(site): 
     
    3334                required=required, provided=provided, name=name) 
    3435            unregistered.append(str(required)) 
    35     logger.info("Unregistered news schema extender adapters for: %s" % unregistered) 
     36    logger.info("Unregistered news schema extender adapters for: %s" \ 
     37                % unregistered) 
     38 
    3639 
    3740def removeConfiglet(site): 
     
    4447        logger.log(logging.INFO, "Unregistered \"%s\" configlet." % conf_id) 
    4548 
     49 
    4650def removeBrowserLayer(site): 
    4751    """ Remove browser layer. 
     
    5357    from plone.browserlayer.interfaces import ILocalBrowserLayerType 
    5458 
    55     name="quintagroup.plonegooglesitemaps" 
     59    name = "quintagroup.plonegooglesitemaps" 
    5660    site = getSiteManager(site) 
    5761    registeredLayers = [r.name for r in site.registeredUtilities() 
     
    6064        unregister_layer(name, site_manager=site) 
    6165        logger.log(logging.INFO, "Unregistered \"%s\" browser layer." % name) 
     66 
    6267 
    6368def uninstall(context): 
     
    8792    # Remove qPloneGoogleSitemaps skin layer 
    8893    for skinName in skins.getSkinSelections(): 
    89         skin_paths = skins.getSkinPath(skinName).split(',')  
     94        skin_paths = skins.getSkinPath(skinName).split(',') 
    9095        paths = [l.strip() for l in skin_paths if not l == old_product] 
    9196        if len(paths) < len(skin_paths): 
    92             logger.info("Removed '%s' from '%s' skin." % (old_product, skinName)) 
     97            logger.info("Removed '%s' from '%s' skin." \ 
     98                        % (old_product, skinName)) 
    9399        skins.addSkinSelection(skinName, ','.join(paths)) 
     100 
    94101 
    95102def recriateSitemaps(smaps): 
     
    99106                [sm.getPath() for sm in smaps])) 
    100107        fields = ['id', 'sitemapType', 'portalTypes', 'states', 
    101                   'blackout_list','reg_exp', 'urls', 'pingTransitions'] 
     108                  'blackout_list', 'reg_exp', 'urls', 'pingTransitions'] 
    102109        for smb in smaps: 
    103110            # get sitemap properties 
     
    117124            logger.info("Successfully replaced '%s' Sitemap" % sm_path) 
    118125 
     126 
    119127def getOldGSitemaps(site): 
    120128    catalog = getToolByName(site, 'portal_catalog') 
     
    123131               if 'qPloneGoogleSitemaps' in str(smb.getObject().__class__)] 
    124132    return old_smb 
    125      
     133 
     134 
    126135def migrate_qPGSM(context): 
    127136    """ Clean-up qPloneGoogleSitemaps product artefacts and 
     
    140149    else: 
    141150        logger.info("No old GoogleSitemaps found.") 
    142  
    143  
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/skins/plonegooglesitemaps/getNotAddableTypes.py

    r1593 r3152  
    1010# customize this script to filter addable portal types based on 
    1111# context, the current user or other criteria 
    12 return ('Favorite','Sitemap') 
     12return ('Favorite', 'Sitemap') 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/XMLParser.py

    r1593 r3152  
    11from xml.parsers.expat import ParserCreate 
    22import re 
     3 
    34 
    45def parse(data): 
     
    1112            ParsedXML['data'].append(data) 
    1213 
    13     ParsedXML = {'start':{}, 'end':[], 'data':[]} 
     14    ParsedXML = {'start': {}, 'end': [], 'data': []} 
    1415    parser = ParserCreate() 
    1516    parser.StartElementHandler = start_el 
     
    1819    return ParsedXML 
    1920 
     21 
    2022def hasURL(xml, url): 
    2123    parsed_sitemap = parse(xml) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/base.py

    r3002 r3152  
    33# 
    44 
    5 import re, sys 
     5import re 
     6import sys 
    67from urllib import urlencode 
    78from StringIO import StringIO 
     
    2829from quintagroup.plonegooglesitemaps.config import PROJECTNAME 
    2930from quintagroup.plonegooglesitemaps.config import ping_googlesitemap 
    30 from quintagroup.plonegooglesitemaps.config import SUPPORT_BLAYER  
     31from quintagroup.plonegooglesitemaps.config import SUPPORT_BLAYER 
    3132from quintagroup.plonegooglesitemaps.browser import mobilesitemapview 
    3233from quintagroup.plonegooglesitemaps.interfaces import IGoogleSitemapsLayer 
     
    6465        self.addProduct(PRODUCT) 
    6566 
     67 
    6668class UnInstalled(BasePTCLayer): 
    6769    """ UnInstall product from the portal 
     
    6971    def afterSetUp(self): 
    7072        qi = getattr(self.portal, 'portal_quickinstaller', None) 
    71         qi.uninstallProducts(products=[PRODUCT,]) 
     73        qi.uninstallProducts(products=[PRODUCT, ]) 
    7274 
    7375 
    74 NotInstalledLayer = NotInstalled([ptc_layer,]) 
    75 InstalledLayer = Installed([NotInstalledLayer,]) 
    76 UnInstalledLayer = UnInstalled([InstalledLayer,]) 
     76NotInstalledLayer = NotInstalled([ptc_layer, ]) 
     77InstalledLayer = Installed([NotInstalledLayer, ]) 
     78UnInstalledLayer = UnInstalled([InstalledLayer, ]) 
    7779 
    7880 
     
    9597        # patch mobile sitemap view 
    9698        self.orig_mobile_ifaces = mobilesitemapview.MOBILE_INTERFACES 
    97         mobilesitemapview.MOBILE_INTERFACES = [IMobileMarker.__identifier__,] 
     99        mobilesitemapview.MOBILE_INTERFACES = [IMobileMarker.__identifier__, ] 
    98100 
    99101    def beforeTearDown(self): 
     
    104106class TestCaseNotInstalled(ptc.PloneTestCase): 
    105107    layer = NotInstalledLayer 
     108 
    106109 
    107110class TestCase(ptc.PloneTestCase, MixinTestCase): 
     
    124127    layer = NotInstalledLayer 
    125128 
     129 
    126130class FunctionalTestCase(ptc.FunctionalTestCase, MixinTestCase): 
    127131    layer = InstalledLayer 
     
    136140        MixinTestCase.beforeTearDown(self) 
    137141 
     142 
    138143class FunctionalTestCaseUnInstalled(ptc.FunctionalTestCase): 
    139144    layer = UnInstalledLayer 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testBlackoutList.py

    r3002 r3152  
    3131        super(TestFilterMixin, self).afterSetUp() 
    3232        self.createTestContent() 
    33         self.sm = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
     33        self.sm = _createObjectByType('Sitemap', self.portal, 
     34                                      id='google-sitemaps') 
    3435        self.req = self.app.REQUEST 
    35         self.catres = self.portal.portal_catalog(portal_type=["Document",]) 
     36        self.catres = self.portal.portal_catalog(portal_type=["Document", ]) 
    3637        self.logout() 
    3738 
     
    3940        # Add testing content to portal 
    4041        for cont in [self.portal, self.folder]: 
    41             for i in range(1,4): 
     42            for i in range(1, 4): 
    4243                doc = _createObjectByType('Document', cont, id='doc%i' % i) 
    4344                doc.edit(text_format='plain', text='hello world %i' % i) 
     
    4849 
    4950    def getPreparedLists(self, fname, fargs): 
    50         fengine = queryMultiAdapter((self.sm, self.req), IBlackoutFilter, name=fname) 
     51        fengine = queryMultiAdapter((self.sm, self.req), IBlackoutFilter, 
     52                                    name=fname) 
    5153        filtered = [f.getPath() for f in fengine.filterOut(self.catres, fargs)] 
    5254        catpaths = [c.getPath() for c in self.catres] 
     
    6163                    "/%s/doc1" % self.folder.absolute_url(1)] 
    6264        self.assertTrue( 
    63             set(catpaths)-set(filtered) == set(excluded), 
    64             'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' % ( 
    65              catpaths, filtered, excluded)) 
     65            set(catpaths) - set(filtered) == set(excluded), 
     66            'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' \ 
     67            % (catpaths, filtered, excluded)) 
    6668 
    6769    def testAbsolutePathFilter(self): 
     
    7274        excluded = ["/%s/doc1" % self.portal.absolute_url(1)] 
    7375        self.assertTrue( 
    74             set(catpaths)-set(filtered) == set(excluded), 
    75             'Wrong filtered-out by "path" filter:\nsrc %s\nres %s\nexcluded %s' % ( 
    76              catpaths, filtered, excluded)) 
     76            set(catpaths) - set(filtered) == set(excluded), 
     77            'Wrong filtered-out by "path" filter:\nsrc %s\nres %s\nexcluded ' \ 
     78            '%s' % (catpaths, filtered, excluded)) 
    7779 
    7880    def testRelativePathFilter(self): 
    79         self.sm = _createObjectByType('Sitemap', self.folder, id='google-sitemaps') 
     81        self.sm = _createObjectByType('Sitemap', self.folder, 
     82                                      id='google-sitemaps') 
    8083        catpaths, filtered = self.getPreparedLists("path", "./doc1") 
    8184        self.assertTrue(type(filtered) in [ListType, TupleType], 
     
    8487        excluded = ["/%s/doc1" % self.folder.absolute_url(1)] 
    8588        self.assertTrue( 
    86             set(catpaths)-set(filtered) == set(excluded), 
    87             'Wrong filtered-out by "path" filter:\nsrc %s\nres %s\nexcluded %s' % ( 
    88              catpaths, filtered, excluded)) 
    89  
     89            set(catpaths) - set(filtered) == set(excluded), 
     90            'Wrong filtered-out by "path" filter:\nsrc %s\nres %s\nexcluded ' \ 
     91            '%s' % (catpaths, filtered, excluded)) 
    9092 
    9193 
     
    9597        super(TestBlacklistFormProcessing, self).afterSetUp() 
    9698        self.loginAsPortalOwner() 
    97         self.smview = queryMultiAdapter((self.sm, self.app.REQUEST), name="sitemap.xml") 
     99        self.smview = queryMultiAdapter((self.sm, self.app.REQUEST), 
     100                                        name="sitemap.xml") 
    98101 
    99102    def getPreparedLists(self, bl, fargs): 
    100         self.sm.edit(blackout_list=[bl,]) 
     103        self.sm.edit(blackout_list=[bl, ]) 
    101104        filtered = [f['url'] for f in self.smview.results()] 
    102105        catpaths = [c.getURL() for c in self.catres] 
     
    106109        catpaths, filtered = self.getPreparedLists("path:/doc1", "/plone/doc1") 
    107110        excluded = ["%s/doc1" % self.portal.absolute_url()] 
    108         self.assertTrue(set(catpaths)-set(filtered) == set(excluded), 
    109             'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' % ( 
    110              catpaths, filtered, excluded)) 
     111        self.assertTrue(set(catpaths) - set(filtered) == set(excluded), 
     112            'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' \ 
     113            % (catpaths, filtered, excluded)) 
    111114 
    112115    def testDefaultFilterUtility(self): 
     
    114117        excluded = ["%s/doc1" % self.portal.absolute_url(), 
    115118                    "%s/doc1" % self.folder.absolute_url()] 
    116         self.assertTrue(set(catpaths)-set(filtered) == set(excluded), 
    117             'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' % ( 
    118              catpaths, filtered, excluded)) 
     119        self.assertTrue(set(catpaths) - set(filtered) == set(excluded), 
     120            'Wrong filtered-out by "id" filter:\nsrc %s\nres %s\nexcluded %s' \ 
     121            % (catpaths, filtered, excluded)) 
    119122        # Now check is output of unnamed filter samed to named one. 
    120         self.sm.edit(blackout_list=["doc1",]) 
     123        self.sm.edit(blackout_list=["doc1", ]) 
    121124        filtered_dflt = [f['url'] for f in self.smview.results()] 
    122125        map(lambda l: l.sort(), (filtered, filtered_dflt)) 
     
    134137    #     self.sm.edit(blackout_list="FooFilterName:arg1:arg2:doc1") 
    135138    #     self.smview.results() 
    136     #     self.assertTrue("FooFilterName" in call_names, 
    137     #         "Wrong filter name parsing - no FooFilterName in %s" % call_names) 
     139    #     self.assertTrue("FooFilterName" in call_names, "Wrong filter " \ 
     140    #         "name parsing - no FooFilterName in %s" % call_names) 
    138141    #     component._api.queryMutliAdapter = origQMA 
    139          
    140          
    141          
     142 
    142143 
    143144def test_suite(): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testConfiglet.py

    r2538 r3152  
    1616    def afterSetUp(self): 
    1717        super(TestConfigletSettings, self).afterSetUp() 
    18         self.settingsURL = '/'+self.portal.absolute_url(1) + '/prefs_gsm_settings' 
     18        self.settingsURL = '/' + self.portal.absolute_url(1) + \ 
     19                           '/prefs_gsm_settings' 
    1920 
    2021    def submitForm(self, fdata, fextra={}): 
     
    3233 
    3334    def testAddContentSitemap(self): 
    34         resp = self.submitForm({'form.button.AddContent': "Add Content Sitemap"}) 
     35        resp = self.submitForm( 
     36                   {'form.button.AddContent': "Add Content Sitemap"}) 
    3537        self.assertEqual(resp.getStatus() / 100, 3) 
    36         self.assertEqual(resp.getHeader("Location").endswith("sitemap.xml/edit"), True) 
     38        sm_edit = "sitemap.xml/edit" 
     39        self.assertEqual(resp.getHeader("Location").endswith(sm_edit), True) 
    3740        # Add SM 
    3841        sm = self.portal["sitemap.xml"] 
    3942        #sm.setPortalTypes(("Documents",)) 
    4043        newform = self.publish(self.settingsURL, basic=self.auth).getBody() 
    41         self.assertEqual('href="http://nohost/plone/sitemap.xml/edit"' in newform, True) 
     44        self.assertEqual('href="http://nohost/plone/sitemap.xml/edit"' in \ 
     45                         newform, True) 
    4246        self.assertEqual("form.button.AddContent" in newform, False) 
    4347 
     
    4549        resp = self.submitForm({'form.button.AddNews': "Add News Sitemap"}) 
    4650        self.assertEqual(resp.getStatus() / 100, 3) 
    47         self.assertEqual(resp.getHeader("Location").endswith("news-sitemap.xml/edit"), True) 
     51        sm_edit = "news-sitemap.xml/edit" 
     52        self.assertEqual(resp.getHeader("Location").endswith(sm_edit), True) 
    4853        # Add SM 
    4954        sm = self.portal["news-sitemap.xml"] 
    5055        #sm.setPortalTypes(("News Item",)) 
    5156        newform = self.publish(self.settingsURL, basic=self.auth).getBody() 
    52         self.assertEqual('href="http://nohost/plone/news-sitemap.xml/edit"' in newform, True) 
     57        self.assertEqual('href="http://nohost/plone/news-sitemap.xml/edit"' \ 
     58                         in newform, True) 
    5359        self.assertEqual("form.button.AddNews" in newform, False) 
    5460 
     
    5662        resp = self.submitForm({'form.button.AddMobile': "Add Mobile Sitemap"}) 
    5763        self.assertEqual(resp.getStatus() / 100, 3) 
    58         self.assertEqual(resp.getHeader("Location").endswith("mobile-sitemap.xml/edit"), True) 
     64        msm_edit = "mobile-sitemap.xml/edit" 
     65        self.assertEqual(resp.getHeader("Location").endswith(msm_edit), True) 
    5966        # Add SM 
    6067        sm = self.portal["mobile-sitemap.xml"] 
    6168        #sm.setPortalTypes(("Documents",)) 
    6269        newform = self.publish(self.settingsURL, basic=self.auth).getBody() 
    63         self.assertEqual('href="http://nohost/plone/mobile-sitemap.xml/edit"' in newform, True) 
     70        self.assertEqual('href="http://nohost/plone/mobile-sitemap.xml/edit"' \ 
     71                         in newform, True) 
    6472        self.assertEqual("form.button.AddMobile" in newform, False) 
    6573 
     
    6977    def afterSetUp(self): 
    7078        super(TestConfigletOverview, self).afterSetUp() 
    71         self.overviewURL = '/'+self.portal.absolute_url(1) + '/prefs_gsm_overview' 
     79        self.overviewURL = '/' + self.portal.absolute_url(1) + \ 
     80                           '/prefs_gsm_overview' 
    7281        self.smURL = "%s/sitemap.xml" % self.portal.absolute_url() 
    73          
     82 
    7483    def testInitial(self): 
    7584        overview = self.publish(self.overviewURL, self.auth).getBody() 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testGoogleSitemaps.py

    r2538 r3152  
    1616    fp = NamedTemporaryFile(mode='w+', prefix=prefix) 
    1717    fp.write("google-site-verification: " + fp.name) 
    18     fp.seek(0,2) 
     18    fp.seek(0, 2) 
    1919    fsize = fp.tell() 
    2020    fp.seek(0) 
    2121 
    22     env = {'REQUEST_METHOD':'PUT'} 
    23     headers = {'content-type':'text/plain', 
     22    env = {'REQUEST_METHOD': 'PUT'} 
     23    headers = {'content-type': 'text/plain', 
    2424               'content-length': fsize, 
    25                'content-disposition':'attachment; filename=%s' % fp.name} 
     25               'content-disposition': 'attachment; filename=%s' % fp.name} 
    2626    fs = FieldStorage(fp=fp, environ=env, headers=headers) 
    2727    return FileUpload(fs), fp 
     
    3434 
    3535        _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    36         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
    37         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
     36        self.sitemapUrl = '/' + self.portal.absolute_url(1) + \ 
     37                          '/google-sitemaps' 
     38        gsm_properties = 'googlesitemap_properties' 
     39        self.gsm_props = self.portal.portal_properties[gsm_properties] 
    3840 
    3941        # Add testing document to portal 
     
    7274            self.portal.gsm_create_verify_file() 
    7375        finally: 
    74             if fp: fp.close() 
     76            if fp: 
     77                fp.close() 
    7578        vf_created = hasattr(self.portal, fname) 
    7679        self.assert_(vf_created, 'Verification file not created') 
    7780 
    7881    def testVerificationForm(self): 
    79         verifyConfigUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_verification' 
     82        verifyConfigUrl = '/' + self.portal.absolute_url(1) + \ 
     83                          '/prefs_gsm_verification' 
    8084        verif_config = self.publish(verifyConfigUrl, self.auth).getBody() 
    81         rexp_input_acitve = re.compile('<input\s+name="verification_file"\s+([^>]*)>', re.I|re.S) 
    82         rexp_button_acitve = re.compile('<input\s+name="form.button.CreateFile"\s+([^>]*)>', re.I|re.S) 
    83         rexp_delete_button = re.compile('<input\s+name="form.button.DeleteFile"\s+[^>]*>', re.I|re.S) 
     85        rexp_input_acitve = re.compile('<input\s+name="verification_file"' \ 
     86                                       '\s+([^>]*)>', re.I | re.S) 
     87        rexp_button_acitve = re.compile( 
     88            '<input\s+name="form.button.CreateFile"\s+([^>]*)>', re.I | re.S) 
     89        rexp_delete_button = re.compile( 
     90            '<input\s+name="form.button.DeleteFile"\s+[^>]*>', re.I | re.S) 
    8491 
    8592        input_acitve = rexp_input_acitve.search(verif_config) 
     
    8895 
    8996        self.assert_(input_acitve and not 'disabled' in input_acitve.groups(1)) 
    90         self.assert_(button_acitve and not 'disabled' in button_acitve.groups(1)) 
     97        self.assert_(button_acitve and not 'disabled' in \ 
     98                     button_acitve.groups(1)) 
    9199        self.assert_(not delete_button) 
    92100 
     
    98106            self.portal.gsm_create_verify_file() 
    99107        finally: 
    100             if fp: fp.close() 
     108            if fp: 
     109                fp.close() 
    101110 
    102111        input_acitve = rexp_input_acitve.search(verif_config) 
     
    109118 
    110119    def testMultiplyVerificationFiles(self): 
    111         verifyConfigUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_verification' 
     120        verifyConfigUrl = '/' + self.portal.absolute_url(1) + \ 
     121                          '/prefs_gsm_verification' 
    112122        fnames = [] 
    113         for i in [1,2]: 
     123        for i in [1, 2]: 
    114124            fp, fname, response = None, None, None 
    115125            try: 
     
    123133                                        basic=self.auth, extra=extra_update) 
    124134            finally: 
    125                 if fp: fp.close() 
    126              
     135                if fp: 
     136                    fp.close() 
     137 
    127138            self.assertEqual(response.getStatus(), 200) 
    128             self.assert_(fname in self.gsm_props.getProperty('verification_filenames',[]), 
    129                              self.gsm_props.getProperty('verification_filenames',[])) 
     139            self.assert_(fname in \ 
     140                 self.gsm_props.getProperty('verification_filenames', []), 
     141                 self.gsm_props.getProperty('verification_filenames', [])) 
    130142            fnames.append(fname) 
    131143 
    132144        self.assertEqual(len([1 for vf in fnames \ 
    133             if vf in self.gsm_props.getProperty('verification_filenames',[])]), 2, 
    134             self.gsm_props.getProperty('verification_filenames',[])) 
     145            if vf in \ 
     146                self.gsm_props.getProperty('verification_filenames', [])]), 2, 
     147                self.gsm_props.getProperty('verification_filenames', [])) 
    135148 
    136149 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testInstallation.py

    r2841 r3152  
    55from quintagroup.canonicalpath.interfaces import ICanonicalLink 
    66 
     7 
    78class TestGoogleSitemapsInstallation(TestCase): 
    89 
    910    def testType(self): 
    1011        pt = self.portal.portal_types 
    11         self.assert_('Sitemap' in pt.objectIds(),  
     12        self.assert_('Sitemap' in pt.objectIds(), 
    1213            'No "Sitemap" type after installation') 
    1314        #Test views 
    1415        views = pt.getTypeInfo('Sitemap').view_methods 
    15         self.assert_('sitemap.xml' in views,  
     16        self.assert_('sitemap.xml' in views, 
    1617            'No "sitemap.xml" view for Sitemap type') 
    17         self.assert_('mobile-sitemap.xml' in views,  
     18        self.assert_('mobile-sitemap.xml' in views, 
    1819            'No "mobile-sitemap.xml" view for Sitemap type') 
    19         self.assert_('news-sitemap.xml' in views,  
     20        self.assert_('news-sitemap.xml' in views, 
    2021            'No "news-sitemap.xml" view for Sitemap type') 
    2122 
     
    2425 
    2526        # Test types_not_searched 
    26         self.assert_("Sitemap" in pp['site_properties'].getProperty('types_not_searched'),  
     27        self.assert_("Sitemap" in \ 
     28            pp['site_properties'].getProperty('types_not_searched'), 
    2729            'No "Sitemap" added to types not searched on installation') 
    2830        # Test metaTypesNotToList 
    29         self.assert_("Sitemap" in pp['navtree_properties'].getProperty('metaTypesNotToList'),  
     31        self.assert_("Sitemap" in \ 
     32            pp['navtree_properties'].getProperty('metaTypesNotToList'), 
    3033            'No "Sitemap" added to types not to list on installation') 
    3134 
    3235        # Test 'googlesitemap_properties' 
    33         self.assert_('googlesitemap_properties' in pp.objectIds(),  
     36        self.assert_('googlesitemap_properties' in pp.objectIds(), 
    3437            'No "googlesitemap_properties" after installation') 
    3538        qsmprops = pp['googlesitemap_properties'] 
     
    3942    def testSkins(self): 
    4043        ps = self.portal.portal_skins 
    41         self.assert_('plonegooglesitemaps' in ps.objectIds(),  
     44        self.assert_('plonegooglesitemaps' in ps.objectIds(), 
    4245            'No "plonegooglesitemaps" skin layer in portal_skins') 
    43         self.assert_('plonegooglesitemaps' in ps.getSkinPath(ps.getDefaultSkin()), 
     46        self.assert_('plonegooglesitemaps' in \ 
     47                     ps.getSkinPath(ps.getDefaultSkin()), 
    4448            'No "plonegooglesitemaps" skin layer in default skin') 
    4549 
    4650    def testConfiglet(self): 
    4751        cp = self.portal.portal_controlpanel 
    48         self.assert_([1 for ai in cp.listActionInfos() if ai['id']=='GoogleSitemaps'],  
     52        self.assert_([1 for ai in cp.listActionInfos() \ 
     53                      if ai['id'] == 'GoogleSitemaps'], 
    4954            'No "GoogleSitemaps" configlet added to plone control panel') 
    5055 
     
    5560        self.assertNotEqual(lsm.queryAdapter( 
    5661                news, interface=ISchemaExtender, 
    57                 name="quintagroup.plonegooglesitemaps.newssitemapextender"), None) 
     62                name="quintagroup.plonegooglesitemaps.newssitemapextender"), 
     63            None) 
    5864 
    5965    def testUpdateCatalog(self): 
     
    117123        super(TestGoogleSitemapsUninstallation, self).afterSetUp() 
    118124        self.portal.portal_quickinstaller.uninstallProducts( 
    119             products=['quintagroup.plonegooglesitemaps',]) 
     125            products=['quintagroup.plonegooglesitemaps', ]) 
    120126        self._refreshSkinData() 
    121127 
     
    124130        news = self.portal.invokeFactory("News Item", id="test_news") 
    125131        news = getattr(self.portal, "test_news") 
    126         self.assertEqual(lsm.queryAdapter(news, interface=ISchemaExtender), None) 
     132        self.assertEqual(lsm.queryAdapter(news, interface=ISchemaExtender), 
     133            None) 
    127134 
    128135    def testConfigletUninstall(self): 
    129         self.assertNotEqual(self.portal.portal_quickinstaller.isProductInstalled(PRODUCT), True, 
    130             '%s is already installed' % PRODUCT) 
     136        self.assertNotEqual( 
     137            self.portal.portal_quickinstaller.isProductInstalled(PRODUCT), 
     138            True, '%s is already installed' % PRODUCT) 
    131139        configTool = self.portal.portal_controlpanel 
    132         self.assertEqual('GoogleSitemaps' in [a.getId() for a in configTool.listActions()], False, 
     140        self.assertEqual('GoogleSitemaps' in [a.getId() for a in \ 
     141                                              configTool.listActions()], False, 
    133142            'Configlet found after uninstallation') 
    134143 
     
    138147 
    139148        from plone.browserlayer import utils 
    140         self.assertEqual(IGoogleSitemapsLayer in utils.registered_layers(), False, 
    141             "Still registered 'IGoogleSitemapsLayer' browser layer") 
     149        self.assertEqual(IGoogleSitemapsLayer in utils.registered_layers(), 
     150            False, "Still registered 'IGoogleSitemapsLayer' browser layer") 
    142151 
    143152 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testMobileSitemaps.py

    r2538 r3152  
    1010 
    1111from quintagroup.plonegooglesitemaps.browser import mobilesitemapview 
    12 from quintagroup.plonegooglesitemaps.browser.commonview import CommonSitemapView 
    13 from quintagroup.plonegooglesitemaps.browser.mobilesitemapview import MobileSitemapView 
     12from quintagroup.plonegooglesitemaps.browser.commonview \ 
     13    import CommonSitemapView 
     14from quintagroup.plonegooglesitemaps.browser.mobilesitemapview \ 
     15    import MobileSitemapView 
     16 
    1417 
    1518class TestMobileSitemapsXML(FunctionalTestCase): 
     
    2225        self.portal["mobile-sitemap.xml"].at_post_create_script() 
    2326        # Add testing mobile item to portal 
    24         self.pubdate = (DateTime()+1).strftime("%Y-%m-%d") 
    25         self.my_mobile = _createObjectByType('Document', self.portal, id='my_mobile') 
     27        self.pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 
     28        self.my_mobile = _createObjectByType('Document', self.portal, 
     29                                             id='my_mobile') 
    2630        alsoProvides(self.my_mobile, IMobileMarker) 
    27         self.my_mobile.edit(text="Test mobile item", title="First mobile (test)", 
     31        self.my_mobile.edit(text="Test mobile item", 
     32                            title="First mobile (test)", 
    2833                            effectiveDate=self.pubdate) 
    2934        self.workflow.doActionFor(self.my_mobile, "publish") 
     
    3237    def reParse(self): 
    3338        # Parse mobile sitemap 
    34         self.sitemap = self.publish("/"+self.portal.absolute_url(1) + "/mobile-sitemap.xml", 
    35                                     "%s:%s" % (portal_owner, default_password)).getBody() 
     39        self.sitemap = self.publish("/" + self.portal.absolute_url(1) + \ 
     40                                    "/mobile-sitemap.xml", 
     41                                    "%s:%s" % (portal_owner, 
     42                                               default_password)).getBody() 
    3643        parsed_sitemap = parse(self.sitemap) 
    3744        self.start = parsed_sitemap["start"] 
     
    4148        self.assert_("urlset" in self.start.keys()) 
    4249        urlset = self.start["urlset"] 
    43         self.assertEqual(urlset.get("xmlns", ""), "http://www.sitemaps.org/schemas/sitemap/0.9") 
    44         self.assertEqual(urlset.get("xmlns:mobile", ""), "http://www.google.com/schemas/sitemap-mobile/1.0") 
     50        self.assertEqual(urlset.get("xmlns", ""), 
     51                         "http://www.sitemaps.org/schemas/sitemap/0.9") 
     52        self.assertEqual(urlset.get("xmlns:mobile", ""), 
     53                         "http://www.google.com/schemas/sitemap-mobile/1.0") 
    4554 
    4655    def test_url(self): 
     
    5261 
    5362    def test_lastmod(self): 
    54         md = [f for k,f in mobilesitemapview.MobileSitemapView.additional_maps \ 
    55               if k=='modification_date'][0] 
     63        md = [f for k, f in \ 
     64              mobilesitemapview.MobileSitemapView.additional_maps \ 
     65              if k == 'modification_date'][0] 
    5666        bmobile = self.portal.portal_catalog(id="my_mobile")[0] 
    5767        self.assert_("lastmod" in self.start.keys()) 
    5868        self.assert_(md(bmobile) in self.data, "Wrong 'modified date':" \ 
    59                      " must be '%s', but exist: '%s'" % (md(bmobile), self.data)) 
     69                     " must be '%s', but exist: '%s'" \ 
     70                     % (md(bmobile), self.data)) 
     71 
    6072 
    6173class TestMobileSitemaps(TestCase): 
     
    7688 
    7789    def testInterface(self): 
    78         self.assert_(mobilesitemapview.ISitemapView.providedBy(self.mobile_view)) 
     90        sm_view = mobilesitemapview.ISitemapView 
     91        self.assert_(sm_view.providedBy(self.mobile_view)) 
    7992 
    8093    def testClasses(self): 
     
    8497    def testAdditionalMaps(self): 
    8598        self.assert_(hasattr(self.mobile_view, "additional_maps")) 
    86         self.assert_([1 for k,f in self.mobile_view.additional_maps \ 
    87                  if k=="modification_date"]) 
    88      
     99        self.assert_([1 for k, f in self.mobile_view.additional_maps \ 
     100                      if k == "modification_date"]) 
     101 
    89102 
    90103def test_suite(): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testNewsSitemaps.py

    r2841 r3152  
    1616from Products.ATContentTypes.content.newsitem import ATNewsItem 
    1717 
     18 
    1819class TestNewsSitemapsXML(FunctionalTestCase): 
    1920 
     
    2526        self.portal["news-sitemaps"].at_post_create_script() 
    2627        # Add testing news item to portal 
    27         self.pubdate = (DateTime()+1).strftime("%Y-%m-%d") 
    28         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
    29         self.my_news.edit(text="Test news item", title="First news (test)", language="ua", 
    30                           effectiveDate=self.pubdate, gsm_access="Registration", 
    31                           gsm_genres=("PressRelease",), gsm_stock="NASDAQ:AMAT, BOM:500325") 
     28        self.pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 
     29        self.my_news = _createObjectByType('News Item', self.portal, 
     30                                           id='my_news') 
     31        self.my_news.edit(text="Test news item", 
     32                          title="First news (test)", 
     33                          language="ua", 
     34                          effectiveDate=self.pubdate, 
     35                          gsm_access="Registration", 
     36                          gsm_genres=("PressRelease",), 
     37                          gsm_stock="NASDAQ:AMAT, BOM:500325") 
    3238        self.workflow.doActionFor(self.my_news, "publish") 
    3339        self.reParse() 
     
    3541    def reParse(self): 
    3642        # Parse news sitemap 
    37         self.sitemap = self.publish("/"+self.portal.absolute_url(1) + "/news-sitemaps", 
    38                                     "%s:%s" % (portal_owner, default_password)).getBody() 
     43        self.sitemap = self.publish("/" + self.portal.absolute_url(1) + \ 
     44                                    "/news-sitemaps", 
     45                                    "%s:%s" % (portal_owner, 
     46                                               default_password)).getBody() 
    3947        parsed_sitemap = parse(self.sitemap) 
    4048        self.start = parsed_sitemap["start"] 
     
    4452        self.assert_("urlset" in self.start.keys()) 
    4553        urlset = self.start["urlset"] 
    46         self.assertEqual(urlset.get("xmlns", ""), "http://www.sitemaps.org/schemas/sitemap/0.9") 
    47         self.assertEqual(urlset.get("xmlns:n", ""), "http://www.google.com/schemas/sitemap-news/0.9") 
     54        self.assertEqual(urlset.get("xmlns", ""), 
     55                         "http://www.sitemaps.org/schemas/sitemap/0.9") 
     56        self.assertEqual(urlset.get("xmlns:n", ""), 
     57                         "http://www.google.com/schemas/sitemap-news/0.9") 
    4858 
    4959    def test_url(self): 
     
    5666    def test_nnews(self): 
    5767        self.assert_("n:news" in self.start.keys()) 
    58          
     68 
    5969    def test_npublication(self): 
    6070        self.assert_("n:publication" in self.start.keys()) 
     
    6777        self.assert_("n:publication_date" in self.start.keys()) 
    6878        self.assert_(self.pubdate in self.data, "No %s in data" % self.pubdate) 
    69          
     79 
    7080    def test_ntitle(self): 
    7181        self.assert_("n:title" in self.start.keys()) 
    72         self.assert_("First news (test)" in self.data, "No 'First news (test)' in data") 
     82        self.assert_("First news (test)" in self.data, 
     83                     "No 'First news (test)' in data") 
    7384 
    7485    def test_naccess(self): 
     
    8899        self.reParse() 
    89100        self.assert_("n:genres" in self.start.keys()) 
    90         self.assert_("PressRelease, Blog" in self.data, "No 'PressRelease, Blog' in data") 
     101        self.assert_("PressRelease, Blog" in self.data, 
     102                     "No 'PressRelease, Blog' in data") 
    91103 
    92104    def test_ngenresEmpty(self): 
     
    109121        # Test n:stock_tickers 
    110122        self.assert_("n:stock_tickers" in self.start.keys()) 
    111         self.assert_("NASDAQ:AMAT, BOM:500325" in self.data, "No 'NASDAQ:AMAT, BOM:500325' in data") 
     123        self.assert_("NASDAQ:AMAT, BOM:500325" in self.data, 
     124                     "No 'NASDAQ:AMAT, BOM:500325' in data") 
    112125 
    113126 
     
    116129    def afterSetUp(self): 
    117130        super(TestNewsSitemapsXMLDefaultObject, self).afterSetUp() 
    118         # Create news sitemaps  
     131        # Create news sitemaps 
    119132        _createObjectByType("Sitemap", self.portal, id="news-sitemaps", 
    120133                            sitemapType="news", portalTypes=("News Item",)) 
    121134        self.portal["news-sitemaps"].at_post_create_script() 
    122135        # Add minimal testing news item to portal 
    123         self.pubdate = (DateTime()+1).strftime("%Y-%m-%d") 
    124         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
     136        self.pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 
     137        self.my_news = _createObjectByType('News Item', self.portal, 
     138                                           id='my_news') 
    125139        self.my_news.edit(effectiveDate=self.pubdate) 
    126140        self.workflow.doActionFor(self.my_news, "publish") 
     
    129143    def reParse(self): 
    130144        # Parse news sitemap 
    131         self.sitemap = self.publish("/"+self.portal.absolute_url(1) + "/news-sitemaps", 
    132                                     "%s:%s" % (portal_owner, default_password)).getBody() 
     145        self.sitemap = self.publish("/" + self.portal.absolute_url(1) + \ 
     146                                    "/news-sitemaps", 
     147                                    "%s:%s" % (portal_owner, default_password) 
     148                                    ).getBody() 
    133149        parsed_sitemap = parse(self.sitemap) 
    134150        self.start = parsed_sitemap["start"] 
     
    137153    def test_nnews(self): 
    138154        self.assert_("n:news" in self.start.keys()) 
    139          
     155 
    140156    def test_npublication(self): 
    141157        self.assert_("n:publication" in self.start.keys()) 
     
    148164        self.assert_("n:publication_date" in self.start.keys()) 
    149165        self.assert_(self.pubdate in self.data, "No %s in data" % self.pubdate) 
    150          
     166 
    151167    def test_ntitle(self): 
    152168        self.assert_("n:title" in self.start.keys()) 
     
    171187        super(TestSchemaExtending, self).afterSetUp() 
    172188        self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 
    173         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
     189        self.my_news = _createObjectByType('News Item', self.portal, 
     190                                           id='my_news') 
    174191 
    175192    def testExtendNewsItemByDefault(self): 
     
    181198        self.assertEqual(self.my_doc.getField("gsm_genres"), None) 
    182199        self.assertEqual(self.my_doc.getField("gsm_stock"), None) 
    183      
     200 
    184201    def testRegistrationOnLocalSM(self): 
    185202        """SchemaExtender adapters must be registered 
     
    193210        self.assertNotEqual(localsm.queryAdapter( 
    194211                self.my_news, ISchemaExtender, 
    195                 name="quintagroup.plonegooglesitemaps.newssitemapextender"), None) 
     212                name="quintagroup.plonegooglesitemaps.newssitemapextender"), 
     213            None) 
    196214        self.assertEqual(globalsm.queryAdapter( 
    197215                self.my_news, ISchemaExtender, 
    198                 name="quintagroup.plonegooglesitemaps.newssitemapextender"), None) 
     216                name="quintagroup.plonegooglesitemaps.newssitemapextender"), 
     217            None) 
    199218 
    200219 
     
    206225class ITestTaggable(Interface): 
    207226    """Taggable content 
    208     """ 
     227 
     228""" 
     229 
    209230 
    210231class ExtendableStringField(ExtensionField, StringField): 
    211232    """An extendable string field.""" 
     233 
    212234 
    213235class TestExtender(object): 
     
    219241 
    220242    def getFields(self): 
    221         return [ExtendableStringField("testField",),] 
     243        return [ExtendableStringField("testField",), ] 
    222244 
    223245from quintagroup.plonegooglesitemaps.interfaces import INewsSitemapProvider 
     246 
     247 
    224248class TestNotOverrideExistingSchemaExtender(TestCase): 
    225249    """ Test if another schemaextender has been defined for the 
     
    227251    """ 
    228252    def prepareContent(self): 
    229          
     253 
    230254        classImplements(ATNewsItem, ITestTaggable) 
    231         provideAdapter(TestExtender, name=u"archetypes.schemaextender.test.adapter") 
     255        provideAdapter(TestExtender, 
     256                       name=u"archetypes.schemaextender.test.adapter") 
    232257 
    233258        self.portal.invokeFactory('News Item', 'taggable-news') 
     
    239264        self.assert_(INewsSitemapProvider.providedBy(self.taggable_news)) 
    240265        schema = self.taggable_news.Schema().keys() 
    241         self.assert_("gsm_access" in schema, "no 'gsm_access' in schema: %s" % schema) 
    242         self.assert_("testField" in schema, "no 'testField' in schema: %s" % schema) 
    243  
     266        self.assert_("gsm_access" in schema, "no 'gsm_access' in schema: %s" \ 
     267                     % schema) 
     268        self.assert_("testField" in schema, "no 'testField' in schema: %s" \ 
     269                     % schema) 
    244270 
    245271 
    246272classImplements(TestRequest, IAttributeAnnotatable) 
     273 
    247274 
    248275class TestAdditionalMaps(TestCase): 
     
    255282    def afterSetUp(self): 
    256283        super(TestAdditionalMaps, self).afterSetUp() 
    257         # Create news sitemaps  
     284        # Create news sitemaps 
    258285        _createObjectByType("Sitemap", self.portal, id="news-sitemaps", 
    259286                            sitemapType="news") 
     
    261288        request = TestRequest() 
    262289        alsoProvides(request, IGoogleSitemapsLayer) 
    263         self.nsmv = queryMultiAdapter((context, request), name="news-sitemap.xml") 
     290        self.nsmv = queryMultiAdapter((context, request), 
     291                                      name="news-sitemap.xml") 
    264292 
    265293        self.brain = self.portal.portal_catalog(portal_type="Document")[0] 
    266294        for k in self.mv_keys: 
    267295            self.brain[k] = MV 
    268          
     296 
    269297    def testAdditionalMaps(self): 
    270         for n,func in self.nsmv.additional_maps: 
     298        for n, func in self.nsmv.additional_maps: 
    271299            try: 
    272300                v = func(self.brain) 
    273301            except Exception, e: 
    274                 self.fail("Wrong processing 'Missing' value for '%s': %s" 
     302                self.fail("Wrong processing 'Missing' value for '%s': %s" \ 
    275303                          % (n, str(e))) 
    276                  
    277                  
     304 
     305 
    278306def test_suite(): 
    279307    from unittest import TestSuite, makeSuite 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testPinging.py

    r2538 r3152  
    77    def afterSetUp(self): 
    88        super(TestPinging, self).afterSetUp() 
    9         self.workflow.setChainForPortalTypes(pt_names=('News Item','Document'), 
    10                                              chain="simple_publication_workflow") 
    11         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
     9        self.workflow.setChainForPortalTypes( 
     10                pt_names=('News Item', 'Document'), 
     11                chain="simple_publication_workflow") 
     12        gsm_properties = 'googlesitemap_properties' 
     13        self.gsm_props = self.portal.portal_properties[gsm_properties] 
    1214        # Add sitemaps 
    13         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    14         self.contentSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    15         self.newsSM = _createObjectByType('Sitemap', self.portal, id='news-sitemaps') 
    16         self.newsSM.setPortalTypes(('News Item','Document')) 
    17         self.newsSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    18         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
     15        self.contentSM = _createObjectByType('Sitemap', self.portal, 
     16                                             id='google-sitemaps') 
     17        spw_publish = 'simple_publication_workflow#publish' 
     18        self.contentSM.setPingTransitions((spw_publish,)) 
     19        self.newsSM = _createObjectByType('Sitemap', self.portal, 
     20                                          id='news-sitemaps') 
     21        self.newsSM.setPortalTypes(('News Item', 'Document')) 
     22        self.newsSM.setPingTransitions((spw_publish,)) 
     23        self.sitemapUrl = '/' + self.portal.absolute_url(1) + \ 
     24                          '/google-sitemaps' 
    1925        # Add testing document to portal 
    2026        self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 
    21         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
     27        self.my_news = _createObjectByType('News Item', self.portal, 
     28                                           id='my_news') 
    2229 
    2330    def testAutomatePinging(self): 
     
    3239            sys.stdout = back_out 
    3340 
    34         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     41        self.assert_('Pinged %s sitemap to Google' \ 
     42                     % self.contentSM.absolute_url() in data, 
    3543                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    36         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     44        self.assert_('Pinged %s sitemap to Google' \ 
     45                     % self.newsSM.absolute_url() in data, 
    3746                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    3847 
     
    4756            sys.stdout = back_out 
    4857 
    49         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     58        self.assert_('Pinged %s sitemap to Google' \ 
     59                     % self.newsSM.absolute_url() in data, 
    5060                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    51         self.assert_(not 'Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     61        self.assert_(not 'Pinged %s sitemap to Google' \ 
     62                     % self.contentSM.absolute_url() in data, 
    5263                     "Pinged %s on news: '%s'" % (self.contentSM.id, data)) 
    5364 
    5465    def testPingingWithSetupForm(self): 
    5566        # Ping news and content sitemaps 
    56         formUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_settings' 
    57         qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1&form.submitted=1' % \ 
    58              (self.contentSM.id, self.newsSM.id) 
     67        formUrl = '/' + self.portal.absolute_url(1) + '/prefs_gsm_settings' 
     68        qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1' \ 
     69             '&form.submitted=1' % (self.contentSM.id, self.newsSM.id) 
    5970 
    6071        back_out, myout = sys.stdout, StringIO() 
     
    6778            sys.stdout = back_out 
    6879 
    69         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     80        self.assert_('Pinged %s sitemap to Google' \ 
     81                     % self.contentSM.absolute_url() in data, 
    7082                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    71         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     83        self.assert_('Pinged %s sitemap to Google' \ 
     84                     % self.newsSM.absolute_url() in data, 
    7285                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    73  
    7486 
    7587 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testSecurity.py

    r2538 r3152  
    77from Products.CMFPlone.utils import _createObjectByType 
    88 
     9 
    910class MixinSecurity(FunctionalTestCase): 
    1011 
    1112    def getview(self, vpath): 
    12         return self.publish("/"+self.portal.absolute_url(1)+"/"+vpath, self.auth) 
     13        return self.publish("/" + self.portal.absolute_url(1) + \ 
     14                            "/" + vpath, self.auth) 
    1315 
    1416 
     
    1820        super(TestSecurityConfigletManager, self).afterSetUp() 
    1921        self.auth = "admin:admin" 
    20         self.portal.portal_membership.addMember('admin', 'admin', ('Manager',), []) 
     22        self.portal.portal_membership.addMember('admin', 'admin', 
     23                                                ('Manager',), []) 
    2124 
    2225    def testConfigOverview(self): 
     
    6063from DateTime import DateTime 
    6164 
     65 
    6266class TestSecuritySiteMaps(MixinSecurity): 
    6367 
     
    7377        for smtype, smdata in SM_TYPES.items(): 
    7478            _createObjectByType("Sitemap", self.portal, id=smdata["id"], 
    75                                 sitemapType=smtype, portalTypes=smdata["types"]) 
     79                                sitemapType=smtype, 
     80                                portalTypes=smdata["types"]) 
    7681            sm = getattr(self.portal, smdata["id"]) 
    7782            sm.at_post_create_script() 
     
    8186        self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 
    8287        self.workflow.doActionFor(self.my_doc, 'publish') 
    83         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
     88        self.my_news = _createObjectByType('News Item', self.portal, 
     89                                           id='my_news') 
    8490        self.my_news.edit(title="My News Item (test)", 
    8591                          effectiveDate=DateTime().strftime("%Y-%m-%d")) 
    8692        self.workflow.doActionFor(self.my_news, 'publish') 
    87         # mobile content must provides additional interfaces to fall into mobile sitemap 
     93        # mobile content must provides additional interfaces 
     94        # to fall into mobile sitemap 
    8895        alsoProvides(self.my_doc, IMobileMarker) 
    8996        self.my_doc.reindexObject() 
     
    100107        self.assert_("loc" in start) 
    101108        self.assert_(self.my_doc.absolute_url() in data) 
    102          
     109 
    103110    def testNewsSM(self): 
    104111        resp = self.getview("news-sitemap.xml") 
     
    107114        self.assert_("n:name" in start) 
    108115        self.assert_("My News Item" in data) 
    109          
     116 
    110117    def testMobileSM(self): 
    111118        resp = self.getview("mobile-sitemap.xml") 
     
    114121        self.assert_("loc" in start) 
    115122        self.assert_(self.my_doc.absolute_url() in data) 
    116          
     123 
    117124 
    118125def test_suite(): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testSitemaps.py

    r3002 r3152  
    1111 
    1212from quintagroup.plonegooglesitemaps.browser.sitemapview import SitemapView 
    13 from quintagroup.plonegooglesitemaps.browser.newssitemapview import NewsSitemapView 
    14 from quintagroup.plonegooglesitemaps.browser.mobilesitemapview import MobileSitemapView 
     13from quintagroup.plonegooglesitemaps.browser.newssitemapview \ 
     14    import NewsSitemapView 
     15from quintagroup.plonegooglesitemaps.browser.mobilesitemapview \ 
     16    import MobileSitemapView 
    1517 
    1618 
     
    1921    def afterSetUp(self): 
    2022        super(TestSitemapType, self).afterSetUp() 
    21         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
     23        self.contentSM = _createObjectByType('Sitemap', self.portal, 
     24                                             id='google-sitemaps') 
    2225 
    2326    def testFields(self): 
    24         field_ids = map(lambda x:x.getName(), self.contentSM.Schema().fields()) 
     27        field_ids = map(lambda x: x.getName(), 
     28                        self.contentSM.Schema().fields()) 
    2529        # test old Sitemap settings fields 
    2630        self.assert_('id' in field_ids) 
     
    3438 
    3539    def testSitemapTypes(self): 
    36         sitemap_types = self.contentSM.getField('sitemapType').Vocabulary().keys() 
     40        sm_vocabulary = self.contentSM.getField('sitemapType').Vocabulary() 
     41        sitemap_types = sm_vocabulary.keys() 
    3742        self.assert_('content' in sitemap_types) 
    3843        self.assert_('mobile' in sitemap_types) 
     
    4045 
    4146    def testAutoSetLayout(self): 
    42         response = self.publish('/%s/createObject?type_name=Sitemap' % \ 
    43                                 self.portal.absolute_url(1), basic=self.auth) 
     47        response = self.publish('/%s/createObject?type_name=Sitemap' \ 
     48                                % self.portal.absolute_url(1), basic=self.auth) 
    4449        location = response.getHeader('location') 
    45         newurl = location[location.find('/'+self.portal.absolute_url(1)):] 
     50        newurl = location[location.find('/' + self.portal.absolute_url(1)):] 
    4651 
    4752        msm_id = 'mobile_sitemap' 
    4853        form = {'id': msm_id, 
    49                 'sitemapType':'mobile', 
    50                 'portalTypes':['Document',], 
    51                 'states':['published'], 
    52                 'form_submit':'Save', 
    53                 'form.submitted':1, 
     54                'sitemapType': 'mobile', 
     55                'portalTypes': ['Document', ], 
     56                'states': ['published'], 
     57                'form_submit': 'Save', 
     58                'form.submitted': 1, 
    5459                } 
    5560        post_data = StringIO(urlencode(form)) 
    56         response = self.publish(newurl, request_method='POST', stdin=post_data, basic=self.auth) 
     61        response = self.publish(newurl, request_method='POST', stdin=post_data, 
     62                                basic=self.auth) 
    5763        msitemap = getattr(self.portal, msm_id) 
    5864 
     
    6470 
    6571        self.contentSM.setPingTransitions(('plone_workflow#publish',)) 
    66         self.assertEqual(self.contentSM.getPingTransitions(), ('plone_workflow#publish',)) 
    67         self.assert_(ping_googlesitemap in pwf.scripts.keys(),"Not add wf script") 
     72        self.assertEqual(self.contentSM.getPingTransitions(), 
     73                         ('plone_workflow#publish',)) 
     74        self.assert_(ping_googlesitemap in pwf.scripts.keys(), 
     75                     "Not add wf script") 
    6876 
    6977    def testWorkflowStates(self): 
     
    7583        wftrans = self.contentSM.getWorkflowTransitions() 
    7684        self.assertEqual(isinstance(wftrans, atapi.DisplayList), True) 
    77         self.assertEqual("simple_publication_workflow#publish" in wftrans.keys(), True) 
     85        self.assertEqual("simple_publication_workflow#publish" in \ 
     86                         wftrans.keys(), True) 
    7887 
    7988    def testSettingBlackout(self): 
    80         bolist = ["path:./el1  ","   ",""," id:index.html  ","index_html"] 
    81         expect = ("path:./el1","id:index.html","index_html") 
     89        bolist = ["path:./el1  ", "   ", "", " id:index.html  ", "index_html"] 
     90        expect = ("path:./el1", "id:index.html", "index_html") 
    8291        self.contentSM.edit(blackout_list=bolist) 
    8392        value = self.contentSM.getBlackout_list() 
     
    9099    def afterSetUp(self): 
    91100        super(TestSettings, self).afterSetUp() 
    92         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
    93         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    94         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
     101        gsm_properties = 'googlesitemap_properties' 
     102        self.gsm_props = self.portal.portal_properties[gsm_properties] 
     103        self.contentSM = _createObjectByType('Sitemap', self.portal, 
     104                                             id='google-sitemaps') 
     105        self.sitemapUrl = '/' + self.portal.absolute_url(1) + \ 
     106                          '/google-sitemaps' 
    95107        # Add testing document to portal 
    96108        self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 
     
    141153        self.assert_(not hasURL(sitemap, self.portal.absolute_url())) 
    142154 
    143         regexp = "s/\/%s//"%self.my_doc.getId() 
     155        regexp = "s/\/%s//" % self.my_doc.getId() 
    144156        self.contentSM.setReg_exp([regexp]) 
    145157 
     
    163175    def afterSetUp(self): 
    164176        super(TestPinging, self).afterSetUp() 
    165         self.workflow.setChainForPortalTypes(pt_names=('News Item','Document'), 
    166                                              chain="simple_publication_workflow") 
    167         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
     177        self.workflow.setChainForPortalTypes(pt_names=('News Item', 
     178                 'Document'), chain="simple_publication_workflow") 
     179        gsm_properties = 'googlesitemap_properties' 
     180        self.gsm_props = self.portal.portal_properties[gsm_properties] 
    168181        # Add sitemaps 
    169         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    170         self.contentSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    171         self.newsSM = _createObjectByType('Sitemap', self.portal, id='news-sitemaps') 
    172         self.newsSM.setPortalTypes(('News Item','Document')) 
    173         self.newsSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    174         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
     182        self.contentSM = _createObjectByType('Sitemap', self.portal, 
     183                                             id='google-sitemaps') 
     184        spw_publish = 'simple_publication_workflow#publish' 
     185        self.contentSM.setPingTransitions((spw_publish,)) 
     186        self.newsSM = _createObjectByType('Sitemap', self.portal, 
     187                                          id='news-sitemaps') 
     188        self.newsSM.setPortalTypes(('News Item', 'Document')) 
     189        self.newsSM.setPingTransitions((spw_publish,)) 
     190        self.sitemapUrl = '/' + self.portal.absolute_url(1) + \ 
     191                          '/google-sitemaps' 
    175192        # Add testing document to portal 
    176193        self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 
    177         self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 
     194        self.my_news = _createObjectByType('News Item', self.portal, 
     195                                           id='my_news') 
    178196 
    179197    def testAutomatePinging(self): 
     
    188206            sys.stdout = back_out 
    189207 
    190         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     208        self.assert_('Pinged %s sitemap to Google' \ 
     209                     % self.contentSM.absolute_url() in data, 
    191210                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    192         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     211        self.assert_('Pinged %s sitemap to Google' \ 
     212                     % self.newsSM.absolute_url() in data, 
    193213                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    194214 
     
    203223            sys.stdout = back_out 
    204224 
    205         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     225        self.assert_('Pinged %s sitemap to Google' \ 
     226                     % self.newsSM.absolute_url() in data, 
    206227                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    207         self.assert_(not 'Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     228        self.assert_(not 'Pinged %s sitemap to Google' \ 
     229                     % self.contentSM.absolute_url() in data, 
    208230                     "Pinged %s on news: '%s'" % (self.contentSM.id, data)) 
    209231 
    210232    def testPingingWithSetupForm(self): 
    211233        # Ping news and content sitemaps 
    212         formUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_settings' 
    213         qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1&form.submitted=1' % \ 
    214              (self.contentSM.id, self.newsSM.id) 
     234        formUrl = '/' + self.portal.absolute_url(1) + '/prefs_gsm_settings' 
     235        qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1' \ 
     236             '&form.submitted=1' % (self.contentSM.id, self.newsSM.id) 
    215237 
    216238        back_out, myout = sys.stdout, StringIO() 
     
    223245            sys.stdout = back_out 
    224246 
    225         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     247        self.assert_('Pinged %s sitemap to Google' \ 
     248                     % self.contentSM.absolute_url() in data, 
    226249                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    227         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     250        self.assert_('Pinged %s sitemap to Google' \ 
     251                     % self.newsSM.absolute_url() in data, 
    228252                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    229253 
     
    241265        self.sm.at_post_create_script() 
    242266        # Add content in root and in the test folder 
    243         pubdate = (DateTime()+1).strftime("%Y-%m-%d") 
    244         root_content = _createObjectByType(ptypes[0], self.portal, id='root-content') 
    245         inner_content = _createObjectByType(ptypes[0], tfolder, id='inner-content') 
     267        pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 
     268        root_content = _createObjectByType(ptypes[0], self.portal, 
     269                                           id='root-content') 
     270        inner_content = _createObjectByType(ptypes[0], tfolder, 
     271                                            id='inner-content') 
    246272        for obj in (root_content, inner_content): 
    247273            self.workflow.doActionFor(obj, 'publish') 
    248274            if ifaces: 
    249275                alsoProvides(obj, ifaces) 
    250             obj.edit(effectiveDate=pubdate) # this also reindex object 
     276            obj.edit(effectiveDate=pubdate)  # this also reindex object 
    251277        self.inner_path = '/'.join(inner_content.getPhysicalPath()) 
    252          
     278 
    253279    def testGoogleSitemap(self): 
    254280        self.prepareTestContent("content", ("Document",)) 
    255281        filtered = SitemapView(self.sm, TestRequest()).getFilteredObjects() 
    256         self.assertEqual(map(lambda x:x.getPath(), filtered), [self.inner_path,]) 
     282        self.assertEqual(map(lambda x: x.getPath(), filtered), 
     283                        [self.inner_path, ]) 
    257284 
    258285    def testNewsSitemap(self): 
    259286        self.prepareTestContent("news", ("News Item",)) 
    260287        filtered = NewsSitemapView(self.sm, TestRequest()).getFilteredObjects() 
    261         self.assertEqual(map(lambda x:x.getPath(), filtered), [self.inner_path,]) 
     288        self.assertEqual(map(lambda x: x.getPath(), filtered), 
     289                         [self.inner_path, ]) 
    262290 
    263291    def testMobileSitemap(self): 
    264292        self.patchMobile() 
    265293        self.prepareTestContent("content", ("Document",), (IMobileMarker,)) 
    266         filtered = MobileSitemapView(self.sm, TestRequest()).getFilteredObjects() 
    267         self.assertEqual(map(lambda x:x.getPath(), filtered), [self.inner_path,]) 
     294        filtered = MobileSitemapView(self.sm, 
     295                                     TestRequest()).getFilteredObjects() 
     296        self.assertEqual(map(lambda x: x.getPath(), filtered), 
     297                         [self.inner_path, ]) 
    268298 
    269299 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testUpgrade.py

    r2841 r3152  
    33# 
    44 
    5 import logging  
     5import logging 
    66from base import * 
    77from zope.component import getSiteManager 
     
    1717from quintagroup.canonicalpath.interfaces import ICanonicalLink 
    1818 
     19 
    1920class TestUpgrade(TestCase): 
    2021 
     
    2627    def getUpgradeStep(self, sortkey): 
    2728        upgrades = self.setup.listUpgrades(self.profile, show_old=True) 
    28         upgrade_id = upgrades[sortkey-1]["id"] 
     29        upgrade_id = upgrades[sortkey - 1]["id"] 
    2930        step = _upgrade_registry.getUpgradeStep(self.profile, upgrade_id) 
    3031        return step 
     
    4041        # Test registered upgrade profiles 
    4142        pids = [i['id'] for i in self.setup.listProfileInfo()] 
    42         self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_0_to_1_1" in pids, True) 
    43         self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_1_to_1_2" in pids, True) 
     43        self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_0_to_1_1" \ 
     44                         in pids, True) 
     45        self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_1_to_1_2" \ 
     46                         in pids, True) 
    4447 
    4548    def test_step_1_0_to_1_1(self): 
     
    7578        if step is not None: 
    7679            step.doStep(self.setup) 
    77         # canonical_link column replace canonical_path one in the portal_catalog 
     80        # canonical_link column replace canonical_path 
     81        # one in the portal_catalog 
    7882        self.assertEqual("canonical_link" in catalog._catalog.names, True) 
    7983        self.assertEqual("canonical_path" in catalog._catalog.names, False) 
    80         # canonical_link property refactored from canonical_path one for inner doc 
     84        # canonical_link property refactored from canonical_path one 
     85        # for inner doc 
    8186        self.assertNotEqual(ICanonicalPath(doc).canonical_path, doc_cpath) 
    8287        self.assertEqual(ICanonicalLink(doc).canonical_link, doc_clink) 
    83         # canonical_link property refactored from canonical_path one for home folder 
     88        # canonical_link property refactored from canonical_path one 
     89        # for home folder 
    8490        self.assertNotEqual(ICanonicalPath(folder).canonical_path, fldr_cpath) 
    8591        self.assertEqual(ICanonicalLink(folder).canonical_link, fldr_clink) 
     
    94100            # Replace original handlers with patched ones for test calls 
    95101            called = [] 
    96             upgrades[1].handler = lambda st:called.append("1.0 to 1.1") 
    97             upgrades[2].handler = lambda st:called.append("1.1 to 1.2") 
     102            upgrades[1].handler = lambda st: called.append("1.0 to 1.1") 
     103            upgrades[2].handler = lambda st: called.append("1.1 to 1.2") 
    98104            # Run reinstallation 
    99             self.portal.portal_quickinstaller.reinstallProducts(products=config.PROJECTNAME) 
     105            qi = self.portal.portal_quickinstaller 
     106            qi.reinstallProducts(products=config.PROJECTNAME) 
    100107            # Test upgrades call 
    101108            self.assertEqual("1.0 to 1.1" in called, True) 
     
    108115 
    109116try: 
    110     from Products.qPloneGoogleSitemaps.content.sitemap import Sitemap as OldSitemap 
     117    from Products.qPloneGoogleSitemaps.content.sitemap import Sitemap \ 
     118        as OldSitemap 
    111119except ImportError: 
    112120    PRESENT_OLD_PRODUCT = False 
    113121else: 
    114122    PRESENT_OLD_PRODUCT = True 
    115      
     123 
     124 
    116125class TestMigrationFromProduct(TestCase): 
    117126 
     
    176185        # 2. Add old sitemap object in to portal 
    177186        self.portal.invokeFactory("Sitemap", 'sitemap.xml') 
    178         self.assert_('sitemap.xml' in self.portal.objectIds(), self.portal.objectIds()) 
     187        self.assert_('sitemap.xml' in self.portal.objectIds(), 
     188                     self.portal.objectIds()) 
    179189        sm = self.portal['sitemap.xml'] 
    180190        sm.__class__ = OldSitemap 
    181191        self.gs.runImportStepFromProfile(self.profile, self.step) 
    182192        self.assert_(self.chkLog(chk_str), self.log.getvalue()) 
    183          
     193 
    184194 
    185195def test_suite(): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/test_doctest.py

    r3002 r3152  
    44from base import * 
    55from Products.CMFPlone.utils import _createObjectByType 
     6 
    67 
    78class DocTestCase(FunctionalTestCase): 
     
    1516        doc.edit(text_format='plain', text=text) 
    1617        self.workflow.doActionFor(doc, 'publish') 
    17         #return doc         
     18        #return doc 
     19 
    1820 
    1921def test_suite(): 
     
    2426            'filters.txt', package='quintagroup.plonegooglesitemaps', 
    2527            test_class=DocTestCase, globs=globals(), 
    26             optionflags= doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS), 
     28            optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS), 
    2729                       # | doctest.REPORT_ONLY_FIRST_FAILURE | 
    2830        ]) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/upgrades.py

    r2602 r3152  
    77 
    88convertor = None 
     9 
    910 
    1011def migrateCanonical(plone_tools): 
     
    1718    portal = purl.getPortalObject() 
    1819    allCTTypes = types.listContentTypes() 
    19     obj_metatypes =  [m.content_meta_type for m in types.objectValues() \ 
    20                       if m.getId() in allCTTypes]  
     20    obj_metatypes = [m.content_meta_type for m in types.objectValues() \ 
     21                     if m.getId() in allCTTypes] 
    2122    convertor = CanonicalConvertor(portal_url=purl()) 
    2223    portal.ZopeFindAndApply( 
     
    2829    print convertor.getLogs() 
    2930 
     31 
    3032def renameProperty(obj, path): 
    3133    """ Migrate canonical_path property into canonical_link 
     
    3537        convertor.convertIPathToLink(obj) 
    3638 
     39 
    3740def upgrade_1_0_to_1_1(setuptool): 
    3841    """ Upgrade quintagroup.plonegooglesitemaps from version 1.0 to 1.1. 
    3942    """ 
    40     setuptool.runAllImportStepsFromProfile('profile-quintagroup.plonegooglesitemaps:upgrade_1_0_to_1_1') 
     43    profile_name = 'profile-quintagroup.plonegooglesitemaps:upgrade_1_0_to_1_1' 
     44    setuptool.runAllImportStepsFromProfile(profile_name) 
     45 
    4146 
    4247def upgrade_1_1_to_1_2(setuptool): 
    4348    """ Upgrade quintagroup.plonegooglesitemaps from version 1.1 to 1.2. 
    4449    """ 
    45     plone_tools = queryMultiAdapter((setuptool, setuptool.REQUEST), name="plone_tools") 
     50    plone_tools = queryMultiAdapter((setuptool, setuptool.REQUEST), 
     51                                    name="plone_tools") 
    4652    migrateCanonical(plone_tools) 
    47     setuptool.runAllImportStepsFromProfile('profile-quintagroup.plonegooglesitemaps:upgrade_1_1_to_1_2') 
     53    profile_name = 'profile-quintagroup.plonegooglesitemaps:upgrade_1_1_to_1_2' 
     54    setuptool.runAllImportStepsFromProfile(profile_name) 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/utils.py

    r2412 r3152  
    66 
    77from quintagroup.plonegooglesitemaps import config 
     8 
    89 
    910def ping_google(url, sitemap_id): 
     
    1920    sitemap_url = urlquote(resurl) 
    2021 
    21     g = urlopen('http://www.google.com/webmasters/tools/ping?sitemap='+sitemap_url) 
     22    g = urlopen('http://www.google.com/webmasters/tools/ping?sitemap=' + \ 
     23                sitemap_url) 
    2224    result = g.read() 
    2325    g.close() 
  • quintagroup.plonegooglesitemaps/trunk/setup.py

    r3002 r3152  
    55version = '1.6.0' 
    66 
    7 tests_require=['zope.testing', 
    8                'collective.testcaselayer'] 
     7tests_require = ['zope.testing', 
     8                 'collective.testcaselayer'] 
    99 
    1010setup(name='quintagroup.plonegooglesitemaps', 
    1111      version=version, 
    12       description="Allows Plone websites to get better visibility for Google search engine", 
     12      description="Allows Plone websites to get better visibility for " \ 
     13                  "Google search engine", 
    1314      long_description=open("README.txt").read() + "\n" + 
    1415                       open(os.path.join("docs", "HISTORY.txt")).read(), 
    15       # Get more strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers 
     16      # Get more strings from 
     17      # http://pypi.python.org/pypi?%3Aaction=list_classifiers 
    1618      classifiers=[ 
    1719        "Framework :: Plone", 
     
    2123      author='Quintagroup', 
    2224      author_email='info@quintagroup.com', 
    23       url='http://svn.quintagroup.com/products/quintagroup.plonegooglesitemaps', 
     25      url='http://svn.quintagroup.com/products/' \ 
     26          'quintagroup.plonegooglesitemaps', 
    2427      license='GPL', 
    2528      packages=find_packages(exclude=['ez_setup']), 
     
    4346      target = plone 
    4447      """, 
    45       paster_plugins = ["ZopeSkel"], 
     48      paster_plugins=["ZopeSkel"], 
    4649      ) 
Note: See TracChangeset for help on using the changeset viewer.