Test coverage for vnccollab.theme.browser.homepage

vnccollab/      covered 69% (1245 of 4098 uncovered)
    theme/      covered 69% (1245 of 4098 uncovered)
        browser/      covered 74% (507 of 1985 uncovered)
            homepage.py      covered 90% (8 of 80 uncovered)

    1: from Acquisition import aq_inner
    1: from ZODB.POSException import ConflictError
       
    1: from zope.component import getUtility
    1: from zope.interface import Interface, implements, alsoProvides
       
    1: from plone.memoize.view import memoize
    1: from plone.portlets.interfaces import IPortletManager, \
          IPortletAssignmentSettings
    1: from plone.portlets.constants import GROUP_CATEGORY
    1: from plone.portlets.manager import PortletManagerRenderer, logger
    1: from plone.portlets.utils import hashPortletInfo
       
    1: from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
    1: from Products.CMFCore.utils import getToolByName
       
    1: from ..config import HP_NEWS_LIMIT
    1: from .dashboard import DashboardView
       
       
    2: class IHomePageView(Interface):
    1:     """Homepage Default View"""
       
    2: class IAnonymousHomePageView(IHomePageView):
    1:     """Marker interface for anonymous homepage version"""
       
    2: class HomePageColumnsRenderer(PortletManagerRenderer):
       
    1:     @memoize
           def _lazyLoadPortlets(self, manager):
    4:         items = []
               # below assignments attribute should be assigned by parent code
    5:         for p in self.filter(self.assignments):
    1:             renderer = self._dataToPortlet(p['assignment'].data)
    1:             info = p.copy()
    1:             info['manager'] = self.manager.__name__
    1:             info['renderer'] = renderer
    1:             hashPortletInfo(info)
                   # Record metadata on the renderer
    1:             renderer.__portlet_metadata__ = info.copy()
    1:             del renderer.__portlet_metadata__['renderer']
    1:             try:
    1:                 isAvailable = renderer.available
>>>>>> except ConflictError:
>>>>>> raise
>>>>>> except Exception, e:
>>>>>> isAvailable = False
>>>>>> logger.exception(
>>>>>> "Error while determining renderer availability of portlet "
"(%r %r %r): %s" % (
>>>>>> p['category'], p['key'], p['name'], str(e)))
1: info['available'] = isAvailable 1: items.append(info) 4: return items 2: class HomePageView(DashboardView): 1: implements(IHomePageView) 1: _welcome_template = ViewPageTemplateFile('templates/homepage_view.pt') 1: _dashboard_template = ViewPageTemplateFile('templates/dashboard.pt') 1: def getNews(self): 2: catalog = getToolByName(self.context, 'portal_catalog') 2: return catalog(portal_type="News Item", sort_on='created', 2: sort_order='reverse', 2: sort_limit=HP_NEWS_LIMIT)[:HP_NEWS_LIMIT] 1: def __call__(self): 4: if self.is_anonymous(): 2: alsoProvides(self, IAnonymousHomePageView) 4: return self.render() 1: def render(self): 4: if self.is_anonymous(): 2: return self._welcome_template() else: 2: return self._dashboard_template() 1: def getColumn(self, name, group='AnonymousUsers'): 8: column = getUtility(IPortletManager, name=name) 8: category = column[GROUP_CATEGORY] 8: mapping = category.get(group, None) 8: if mapping is None: 4: return u'' 4: context = aq_inner(self.context) 4: assignments = [] 5: for assignment in mapping.values(): 1: settings = IPortletAssignmentSettings(assignment) 1: if not settings.get('visible', True):
>>>>>> continue
1: assignments.append({'category': GROUP_CATEGORY, 1: 'key': group, 1: 'name': assignment.__name__, 1: 'assignment': assignment }) 4: renderer = HomePageColumnsRenderer(context, self.request, self, column) 4: renderer.assignments = assignments 4: renderer.update() 4: return renderer.render() 1: def is_anonymous(self): 8: mt = getToolByName(self.context, 'portal_membership') 8: return mt.isAnonymousUser()