Skip to content

Commit

Permalink
Move newsml_allowed and newsml_enabled from util to the view.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpgimenez committed Jan 15, 2014
1 parent cd68f00 commit aaa6cbc
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 40 deletions.
38 changes: 18 additions & 20 deletions src/collective/syndication/tests/test_syndication.py
Expand Up @@ -225,44 +225,42 @@ class TestNewsMLSyndicationUtility(NewsMLBaseSyndicationTest):
layer = INTEGRATION_TESTING

def test_newsml_allowed_not_syndicatable(self):
util = self.folder.file.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_allowed(), False)
view = self.folder.file.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_allowed(), False)

def test_newsml_allowed(self):
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_allowed(), True)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_allowed(), True)

def test_newsml_allowed_site_disabled(self):
self.site_settings.allowed = False
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_allowed(), False)
util = self.news1.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_allowed(), False)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_allowed(), False)
view = self.news1.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_allowed(), False)

def test_newsml_enabled(self):
self.folder_settings.enabled = True
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_enabled(), True)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_enabled(), True)

def test_not_newsml_enabled(self):
self.folder_settings.enabled = False
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_enabled(), False)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_enabled(), False)

def test_newsml_enabled_site_disabled(self):
self.site_settings.allowed = False
self.folder_settings.enabled = True
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_enabled(), False)
util = self.news1.restrictedTraverse('@@syndication-util')
self.assertEqual(util.newsml_enabled(), False)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_enabled(), False)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertEqual(view.newsml_enabled(), False)

def test_newsml_enabled_raises_404(self):
self.site_settings.allowed = False
util = self.folder.restrictedTraverse('@@syndication-util')
self.assertRaises(NotFound, util.newsml_enabled, True)
util = self.folder.news1.restrictedTraverse('@@syndication-util')
self.assertRaises(NotFound, util.newsml_enabled, True)
view = self.folder.restrictedTraverse('@@newsml.xml')
self.assertRaises(NotFound, view.newsml_enabled, True)


class TestNewsMLSyndicationFeedAdapter(NewsMLBaseSyndicationTest):
Expand Down
18 changes: 0 additions & 18 deletions src/collective/syndication/utils.py
Expand Up @@ -54,24 +54,6 @@ def context_enabled(self, raise404=False):
else:
return True

def newsml_allowed(self):
if not self.site_enabled():
return False
elif ISyndicatable.providedBy(self.context):
settings = IFeedSettings(self.context, None)
if settings.enabled:
return True
return False

def newsml_enabled(self, raise404=False):
if not self.newsml_allowed():
if raise404:
raise NotFound
else:
return False
else:
return True

@property
@memoize
def site_settings(self):
Expand Down
23 changes: 21 additions & 2 deletions src/collective/syndication/views.py
Expand Up @@ -10,6 +10,7 @@
from collective.syndication.interfaces import ISearchFeed
from collective.syndication.interfaces import IFeed
from collective.syndication.interfaces import IFeedSettings
from collective.syndication.interfaces import ISyndicatable

from collective.syndication import _

Expand Down Expand Up @@ -104,10 +105,28 @@ def get_image(self, item):
pass
return None

def __call__(self):
def newsml_allowed(self):
util = getMultiAdapter((self.context, self.request),
name='syndication-util')
if util.newsml_enabled(raise404=True):
if not util.site_enabled():
return False
elif ISyndicatable.providedBy(self.context):
settings = IFeedSettings(self.context, None)
if settings.enabled:
return True
return False

def newsml_enabled(self, raise404=False):
if not self.newsml_allowed():
if raise404:
raise NotFound
else:
return False
else:
return True

def __call__(self):
if self.newsml_enabled(raise404=True):
settings = IFeedSettings(self.context, None)
if settings and self.__name__ not in settings.feed_types:
raise NotFound
Expand Down

0 comments on commit aaa6cbc

Please sign in to comment.