[2909] | 1 | # |
---|
| 2 | # Tests related to general Sitemap type. |
---|
| 3 | # |
---|
| 4 | from base import * |
---|
[2911] | 5 | from types import ListType, TupleType |
---|
[2909] | 6 | from zope.component import queryUtility |
---|
| 7 | |
---|
[2911] | 8 | from Products.CMFPlone.utils import _createObjectByType |
---|
[2909] | 9 | from quintagroup.plonegooglesitemaps.config import BLACKOUT_PREFIX |
---|
| 10 | from quintagroup.plonegooglesitemaps.interfaces import IBlackoutFilterUtility |
---|
| 11 | |
---|
[2911] | 12 | idfname = BLACKOUT_PREFIX + "id" |
---|
| 13 | pathfname = BLACKOUT_PREFIX + "path" |
---|
[2909] | 14 | |
---|
| 15 | class TestBOFilterUtilities(TestCase): |
---|
| 16 | |
---|
| 17 | def testDefaultIdUtility(self): |
---|
[2911] | 18 | self.assertTrue(queryUtility(IBlackoutFilterUtility, name=idfname) is not None, |
---|
| 19 | "Not registered default '%s' IBlackoutFilterUtility" % idfname) |
---|
[2909] | 20 | |
---|
| 21 | def testDefaultPathUtility(self): |
---|
[2911] | 22 | self.assertTrue(queryUtility(IBlackoutFilterUtility, name=pathfname) is not None, |
---|
| 23 | "Not registered default '%s' IBlackoutFilterUtility" % pathfname) |
---|
[2909] | 24 | |
---|
| 25 | |
---|
[2911] | 26 | class TestDefaultFilters(TestCase): |
---|
| 27 | |
---|
| 28 | def afterSetUp(self): |
---|
| 29 | self.loginAsPortalOwner() |
---|
| 30 | # Add testing content to portal |
---|
| 31 | for cont in [self.portal, self.folder]: |
---|
| 32 | for i in range(1,4): |
---|
| 33 | doc = _createObjectByType('Document', cont, id='my_doc%i' % i) |
---|
| 34 | doc.edit(text_format='plain', text='hello world %i' % i) |
---|
| 35 | self.catres = self.portal.portal_catalog(portal_type=["Document",]) |
---|
| 36 | self.logout() |
---|
| 37 | |
---|
| 38 | def testIdFilter(self): |
---|
| 39 | idfilter = queryUtility(IBlackoutFilterUtility, name=idfname) |
---|
| 40 | catpaths = [c.getPath() for c in self.catres] |
---|
| 41 | filtered = [f.getPath() for f in idfilter.filterOut(self.catres, fkey="my_doc1")] |
---|
| 42 | excluded = [c.getPath() for c in self.catres if c.id == "my_doc1"] |
---|
| 43 | map(lambda l:l.sort(), [catpaths, filtered, excluded]) |
---|
| 44 | self.assertTrue(type(filtered) in [ListType, TupleType], |
---|
| 45 | 'Object type, returned by filteredOut method of "%s" utility '\ |
---|
| 46 | 'not list nor tuple' % idfname) |
---|
| 47 | self.assertTrue(set(catpaths)-set(filtered) == set(excluded), |
---|
| 48 | 'Wrong filtered-out by "%s" filter:\nsrc %s\nres %s\nexcluded %s' % ( |
---|
| 49 | idfname, catpaths, filtered, excluded)) |
---|
| 50 | |
---|
| 51 | def testPathFilter(self): |
---|
| 52 | pathfilter = queryUtility(IBlackoutFilterUtility, name=pathfname) |
---|
| 53 | catpaths = [c.getPath() for c in self.catres] |
---|
| 54 | filtered = [f.getPath() for f in pathfilter.filterOut(self.catres, fkey="/plone/my_doc1")] |
---|
| 55 | excluded = [c.getPath() for c in self.catres if c.getPath() == "/plone/my_doc1"] |
---|
| 56 | map(lambda l:l.sort(), [catpaths, filtered, excluded]) |
---|
| 57 | self.assertTrue(type(filtered) in [ListType, TupleType], |
---|
| 58 | 'Object type, returned by filteredOut method of "%s" utility '\ |
---|
| 59 | 'not list nor tuple' % pathfname) |
---|
| 60 | self.assertTrue(set(catpaths)-set(filtered) == set(excluded), |
---|
| 61 | 'Wrong filtered-out by "%s" filter:\nsrc %s\nres %s\nexcluded %s' % ( |
---|
| 62 | pathfname, catpaths, filtered, excluded)) |
---|
| 63 | |
---|
| 64 | |
---|
| 65 | |
---|
[2909] | 66 | def test_suite(): |
---|
| 67 | from unittest import TestSuite, makeSuite |
---|
| 68 | suite = TestSuite() |
---|
| 69 | suite.addTest(makeSuite(TestBOFilterUtilities)) |
---|
[2911] | 70 | suite.addTest(makeSuite(TestDefaultFilters)) |
---|
[2909] | 71 | return suite |
---|
| 72 | |
---|
| 73 | if __name__ == '__main__': |
---|
| 74 | unittest.main(defaultTest='test_suite') |
---|
| 75 | # framework() |
---|