[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - fixed vocabularies
Yvo Schubbe
cvs-admin at zope.org
Wed Sep 26 07:45:21 UTC 2012
Log message for revision 127894:
- fixed vocabularies
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/search/tests/test_search.py
U Products.CMFDefault/trunk/Products/CMFDefault/utils.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py 2012-09-26 07:17:10 UTC (rev 127893)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py 2012-09-26 07:45:15 UTC (rev 127894)
@@ -32,13 +32,15 @@
from Products.CMFCore.interfaces import IMembershipTool
from Products.CMFCore.interfaces import ITypesTool
from Products.CMFDefault.utils import Message as _
+from Products.CMFDefault.utils import decode
+
def status_vocab(context):
"""Provides a list of workflow states"""
ctool = getUtility(ICatalogTool)
values = [SimpleTerm(None, None, _(u"-- any --"))]
- values += [SimpleTerm(v, v, v)
- for v in ctool.uniqueValuesFor('review_state')]
+ values += [ SimpleTerm(v, str(v), _(decode(v)))
+ for v in ctool.uniqueValuesFor('review_state') ]
return SimpleVocabulary(values)
directlyProvides(status_vocab, IContextSourceBinder)
@@ -46,7 +48,7 @@
"""Provides a list of subject keywords"""
ctool = getUtility(ICatalogTool)
values = [SimpleTerm(None, None, _(u"-- any --"))]
- values += [SimpleTerm(v, v, v)
+ values += [SimpleTerm(v, v.encode('hex'), decode(v))
for v in ctool.uniqueValuesFor('Subject')]
return SimpleVocabulary(values)
directlyProvides(subject_vocab, IContextSourceBinder)
@@ -86,10 +88,11 @@
def type_vocab(context):
"""Provides a list of portal types"""
- ttool = getUtility(ITypesTool)
+ ttool = getUtility(ITypesTool)
types = ttool.listTypeInfo()
terms = [SimpleTerm(None, None, _(u"-- any --"))]
- terms += [SimpleTerm(t.getId(), t.getId(), t.Title()) for t in types]
+ terms += [ SimpleTerm(t.getId(), t.getId(), decode(t.Title()))
+ for t in types ]
return SimpleVocabulary(terms)
directlyProvides(type_vocab, IContextSourceBinder)
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/tests/test_search.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/tests/test_search.py 2012-09-26 07:17:10 UTC (rev 127893)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/tests/test_search.py 2012-09-26 07:45:15 UTC (rev 127894)
@@ -14,15 +14,199 @@
import unittest
+from datetime import date
+from datetime import timedelta
+
from zope.component import getSiteManager
+from zope.i18nmessageid import Message
from zope.testing.cleanup import cleanUp
+from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.interfaces import IMembershipTool
+from Products.CMFCore.interfaces import IPropertiesTool
+from Products.CMFCore.interfaces import ITypesTool
from Products.CMFCore.tests.base.dummy import DummySite
from Products.CMFCore.tests.base.dummy import DummyTool
from Products.CMFDefault.browser.test_utils import DummyRequest
+class DummyPropertiesTool(object):
+
+ def getProperty(self, id, d=None):
+ return 'iso-8859-1'
+
+
+class StatusVocabularyTests(unittest.TestCase):
+
+ def setUp(self):
+ class DummyCatalogTool(object):
+ def uniqueValuesFor(self, name):
+ return ('foo', 'bar')
+
+ sm = getSiteManager()
+ sm.registerUtility(DummyCatalogTool(), ICatalogTool)
+ sm.registerUtility(DummyPropertiesTool(), IPropertiesTool)
+
+ def tearDown(self):
+ cleanUp()
+
+ def _makeOne(self):
+ from Products.CMFDefault.browser.search.interfaces import status_vocab
+
+ return status_vocab(None)
+
+ def test_terms(self):
+ vocab = self._makeOne()
+ self.assertEqual(len(vocab), 3)
+ terms = [ t for t in vocab ]
+
+ self.assertEqual(terms[0].value, None)
+ self.assertEqual(terms[0].token, 'None')
+ self.assertTrue(isinstance(terms[0].token, str))
+ self.assertEqual(terms[0].title, u'-- any --')
+ self.assertTrue(isinstance(terms[0].title, Message))
+
+ self.assertEqual(terms[1].value, 'foo')
+ self.assertEqual(terms[1].token, 'foo')
+ self.assertTrue(isinstance(terms[1].token, str))
+ self.assertEqual(terms[1].title, u'foo')
+ self.assertTrue(isinstance(terms[1].title, Message))
+
+
+class SubjectVocabularyTests(unittest.TestCase):
+
+ def setUp(self):
+ class DummyCatalogTool(object):
+ def uniqueValuesFor(self, name):
+ return ('foo', 'bar')
+
+ sm = getSiteManager()
+ sm.registerUtility(DummyCatalogTool(), ICatalogTool)
+ sm.registerUtility(DummyPropertiesTool(), IPropertiesTool)
+
+ def tearDown(self):
+ cleanUp()
+
+ def _makeOne(self):
+ from Products.CMFDefault.browser.search.interfaces import subject_vocab
+
+ return subject_vocab(None)
+
+ def test_terms(self):
+ vocab = self._makeOne()
+ self.assertEqual(len(vocab), 3)
+ terms = [ t for t in vocab ]
+
+ self.assertEqual(terms[0].value, None)
+ self.assertEqual(terms[0].token, 'None')
+ self.assertTrue(isinstance(terms[0].token, str))
+ self.assertEqual(terms[0].title, u'-- any --')
+ self.assertTrue(isinstance(terms[0].title, Message))
+
+ self.assertEqual(terms[1].value, 'foo')
+ self.assertEqual(terms[1].token, '666f6f')
+ self.assertTrue(isinstance(terms[1].token, str))
+ self.assertEqual(terms[1].title, u'foo')
+ self.assertTrue(isinstance(terms[1].title, unicode))
+
+
+class DateVocabularyTests(unittest.TestCase):
+
+ def setUp(self):
+ class DummyMembershipTool(object):
+ def isAnonymousUser(self):
+ return True
+
+ sm = getSiteManager()
+ sm.registerUtility(DummyMembershipTool(), IMembershipTool)
+
+ def tearDown(self):
+ cleanUp()
+
+ def _makeOne(self):
+ from Products.CMFDefault.browser.search.interfaces import date_vocab
+
+ return date_vocab(None)
+
+ def test_terms(self):
+ vocab = self._makeOne()
+ self.assertEqual(len(vocab), 4)
+ terms = [ t for t in vocab ]
+
+ self.assertEqual(terms[0].value, date(1970, 1, 1))
+ self.assertEqual(terms[0].token, '1970-01-01')
+ self.assertTrue(isinstance(terms[0].token, str))
+ self.assertEqual(terms[0].title, u'Ever')
+ self.assertTrue(isinstance(terms[0].title, Message))
+
+ date_value = date.today() - timedelta(days=1)
+ self.assertEqual(terms[1].value, date_value)
+ self.assertEqual(terms[1].token, str(date_value))
+ self.assertTrue(isinstance(terms[1].token, str))
+ self.assertEqual(terms[1].title, u'Yesterday')
+ self.assertTrue(isinstance(terms[1].title, Message))
+
+ date_value = date.today() - timedelta(days=7)
+ self.assertEqual(terms[2].value, date_value)
+ self.assertEqual(terms[2].token, str(date_value))
+ self.assertTrue(isinstance(terms[2].token, str))
+ self.assertEqual(terms[2].title, u'Last week')
+ self.assertTrue(isinstance(terms[2].title, Message))
+
+ date_value = date.today() - timedelta(days=31)
+ self.assertEqual(terms[3].value, date_value)
+ self.assertEqual(terms[3].token, str(date_value))
+ self.assertTrue(isinstance(terms[3].token, str))
+ self.assertEqual(terms[3].title, u'Last month')
+ self.assertTrue(isinstance(terms[3].title, Message))
+
+
+class TypeVocabularyTests(unittest.TestCase):
+
+ def setUp(self):
+ class DummyType(object):
+ def __init__(self, id, title):
+ self._id = id
+ self._title = title
+ def getId(self):
+ return self._id
+ def Title(self):
+ return self._title
+
+ class DummyTypesTool(object):
+ def listTypeInfo(self):
+ return (DummyType('foo', 'Foo'), DummyType('bar', 'Bar'))
+
+ sm = getSiteManager()
+ sm.registerUtility(DummyTypesTool(), ITypesTool)
+ sm.registerUtility(DummyPropertiesTool(), IPropertiesTool)
+
+ def tearDown(self):
+ cleanUp()
+
+ def _makeOne(self):
+ from Products.CMFDefault.browser.search.interfaces import type_vocab
+
+ return type_vocab(None)
+
+ def test_terms(self):
+ vocab = self._makeOne()
+ self.assertEqual(len(vocab), 3)
+ terms = [ t for t in vocab ]
+
+ self.assertEqual(terms[0].value, None)
+ self.assertEqual(terms[0].token, 'None')
+ self.assertTrue(isinstance(terms[0].token, str))
+ self.assertEqual(terms[0].title, u'-- any --')
+ self.assertTrue(isinstance(terms[0].title, Message))
+
+ self.assertEqual(terms[1].value, 'foo')
+ self.assertEqual(terms[1].token, 'foo')
+ self.assertTrue(isinstance(terms[1].token, str))
+ self.assertEqual(terms[1].title, u'Foo')
+ self.assertTrue(isinstance(terms[1].title, unicode))
+
+
class SearchFormTests(unittest.TestCase):
def setUp(self):
@@ -70,5 +254,9 @@
def test_suite():
suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(StatusVocabularyTests))
+ suite.addTest(unittest.makeSuite(SubjectVocabularyTests))
+ suite.addTest(unittest.makeSuite(DateVocabularyTests))
+ suite.addTest(unittest.makeSuite(TypeVocabularyTests))
suite.addTest(unittest.makeSuite(SearchFormTests))
return suite
Modified: Products.CMFDefault/trunk/Products/CMFDefault/utils.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/utils.py 2012-09-26 07:17:10 UTC (rev 127893)
+++ Products.CMFDefault/trunk/Products/CMFDefault/utils.py 2012-09-26 07:45:15 UTC (rev 127894)
@@ -465,7 +465,7 @@
return value
security.declarePublic('decode')
-def decode(value, context):
+def decode(value, context=None):
""" Decode value using default_charset.
"""
ptool = getUtility(IPropertiesTool)
More information about the checkins
mailing list