示例#1
0
 def _test_json_feed_contents(self):
     # XXX fix tests(isolation issues)
     settings = FeedSettings(self.portal)
     settings.feed_types = ['feed.json']
     settings.enabled = True
     resp = self.publish('/plone/feed.json')
     result = json.loads(resp.body)
     self.assertEqual(result['title'], u'Plone site')
     self.assertEqual(
         len(result['items']), len(self.portal.portal_catalog()))
示例#2
0
    def _test_image_url_with_json(self):
        # XXX fix test(isolation issues)
        settings = FeedSettings(self.portal)
        settings.enabled = True
        settings.feed_types = ['feed.json']
        page = self.portal['front-page']
        page.image = self._get_image()

        resp = self.publish('/plone/feed.json')
        result = json.loads(resp.body)
        base_url = page.absolute_url()
        self.assertEqual(result['items'][0]['image_url'],
                         '{}/@@images/image'.format(base_url))
        self.assertEqual(
            result['items'][0]['file_url'],
            '{}/@@download/image/{}'.format(base_url, page.image.filename))
示例#3
0
def on_content_created(obj, event):
    if obj.portal_type == 'Dashboard':
        return
    metadata = IPublication(obj, None)
    if metadata is not None:
        if metadata.effective is None:
            metadata.effective = localized_now(obj)
    _touch_contributors(obj)

    if obj.portal_type == 'Collection':
        # enable syndication on type by default
        settings = FeedSettings(obj)
        settings.enabled = True

    adapted = ILayoutAware(obj, None)
    if adapted:
        if not adapted.content and not adapted.contentLayout:
            registry = getUtility(IRegistry)
            try:
                default_layout = registry['%s.%s' %
                                          (DEFAULT_CONTENT_LAYOUT_REGISTRY_KEY,
                                           obj.portal_type.replace(' ', '-'))]
                adapted.contentLayout = default_layout
            except (KeyError, AttributeError):
                pass
            try:
                default_layout = registry['%s.%s' %
                                          (DEFAULT_SITE_LAYOUT_REGISTRY_KEY,
                                           obj.portal_type.replace(' ', '-'))]
                adapted.pageSiteLayout = default_layout
            except (KeyError, AttributeError):
                pass

    try:
        tasks.scan_links.delay('/'.join(obj.getPhysicalPath()))
    except CannotGetPortalError:
        pass

    obj.reindexObject()
示例#4
0
 def test_json_feed_when_active(self):
     settings = FeedSettings(self.portal)
     settings.feed_types = ['feed.json']
     settings.enabled = True
     resp = self.publish('/plone/feed.json')
     self.assertEqual(resp.status_code, 200)
示例#5
0
 def test_json_feed_404_when_not_active(self):
     settings = FeedSettings(self.portal)
     settings.feed_types = []
     resp = self.publish('/plone/feed.json')
     self.assertEqual(resp.status_code, 404)
示例#6
0
 def test_json_feed_when_not_active(self):
     settings = FeedSettings(self.portal)
     settings.feed_types = []
     resp = self.publish('/plone/feed.json')
     self.assertTrue(resp.status_code in [301, 302, 404])