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()))
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))
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()
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)
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)
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])