def setUp(self): import Products.GenericSetup.PluginIndexes from Products.PluginIndexes.DateIndex.DateIndex import DateIndex NodeAdapterTestCase.setUp(self) zcml.load_config('configure.zcml', Products.GenericSetup.PluginIndexes) self._obj = DateIndex('foo_date') self._XML = _DATE_XML
def setUp(self): from Products.PluginIndexes.DateIndex.DateIndex import DateIndex PlacelessSetup.setUp(self) zcml.load_config('meta.zcml', Products.Five) zcml.load_config('configure.zcml', Products.GenericSetup.PluginIndexes) self._obj = DateIndex('foo_date') self._XML = _DATE_XML
def recreateCatalog(self, zcm, lang): #-- Create catalog cat_id = 'catalog_%s' % lang root = self.getRootElement() if cat_id in root.objectIds(): root.manage_delObjects([cat_id]) cat_title = 'Default catalog' zcatalog = ZCatalog.ZCatalog(id=cat_id, title=cat_title, container=root) root._setObject(zcatalog.id, zcatalog) zcatalog = getZCatalog(self, lang) writeChangesLog( zcatalog, '[recreateCatalog]: ' + self.getZMILangStr('MSG_INSERTED') % zcatalog.meta_type) #-- Add lexicon addLexicon(self, zcatalog) #-- Add columns for index_name in ['id', 'meta_id' ] + ['zcat_column_%s' % x for x in extra_column_ids]: zcatalog.manage_addColumn(index_name) #-- Add Indexes (incl. Columns) for attr_id in zcm._getAttrIds(): attr_type = 'string' for meta_id in self.getMetaobjIds(): meta_obj_attr = self.getMetaobjAttr(meta_id, attr_id) if meta_obj_attr: attr_type = meta_obj_attr['type'] break index_name = 'zcat_index_%s' % attr_id index_type = zcm.getConfProperty('ZCatalog.TextIndexType', 'ZCTextIndex') if attr_id == 'home_id': index_type = KeywordIndex(attr_id) elif attr_type == 'date': index_type = DateIndex(attr_id) extra = None if index_type == 'ZCTextIndex': extra = Empty() extra.doc_attr = index_name extra.index_type = 'Okapi BM25 Rank' extra.lexicon_id = 'Lexicon' elif index_type != 'KeywordIndex': extra = {} extra['default_encoding'] = 'utf-8' extra['indexed_fields'] = index_name extra['fields'] = [index_name] extra['near_distance'] = 5 extra['splitter_casefolding'] = 1 extra['splitter_max_len'] = 64 extra['splitter_separators'] = '.+-_@' extra['splitter_single_chars'] = 0 zcatalog.manage_addColumn(index_name) zcatalog.manage_addIndex(index_name, index_type, extra)
def getCatalog(self): try: return self._getOb(CATALOG_NAME) except AttributeError: from Products.ZCatalog.ZCatalog import manage_addZCatalog # Make catalog for Devices manage_addZCatalog(self, CATALOG_NAME, CATALOG_NAME) zcat = self._getOb(CATALOG_NAME) cat = zcat._catalog for idxname in ['status', 'type', 'user']: cat.addIndex(idxname, makeCaseInsensitiveFieldIndex(idxname)) for idxname in ['scheduled', 'started', 'finished']: cat.addIndex(idxname, DateIndex(idxname)) return zcat
def test_DateIndex(self): from xml.dom.minidom import parseString from Products.PluginIndexes.DateIndex.DateIndex import DateIndex from Products.GenericSetup.testing import DummySetupEnviron from Products.GenericSetup.PluginIndexes.exportimport \ import DateIndexNodeAdapter environ = DummySetupEnviron() def _no_clear(*a): raise AssertionError("Don't clear me!") index = DateIndex('foo_date') index._setPropValue('index_naive_time_as_local', True) index.clear = _no_clear adapted = DateIndexNodeAdapter(index, environ) adapted.node = parseString(_DATE_XML).documentElement # no raise
def testMeetingValues(self): brain = api.content.find(context=self.meeting, portal_type="Item")[0] indexes = self.catalog.getIndexDataForRID(brain.getRID()) # indexed item number is a sortable integer self.assertEqual(self.item.number, "1") self.assertEqual(self.item.sortable_number, 100) self.assertEqual(indexes.get("sortable_number"), 100) self.assertEqual(indexes.get("number"), "1") self.assertEqual(self.meeting.title, indexes.get("linkedMeetingTitle")) self.assertEqual(self.meeting.UID(), indexes.get("linkedMeetingUID")) self.assertEqual( indexes.get("linkedMeetingDate"), DateIndex("test")._convert( datetime(2018, 12, 20, 18, 25, 43, 51100)), ) self.assertEqual(str(self.meeting.date_time.year), indexes.get("year"))
def setUp(self): self._values = ( (0, Dummy('a', None)), # None (1, Dummy('b', DateTime(0))), # 1055335680 (2, Dummy('c', DateTime('2002-05-08 15:16:17'))), # 1072667236 (3, Dummy('d', DateTime('2032-05-08 15:16:17'))), # 1088737636 (4, Dummy('e', DateTime('2062-05-08 15:16:17'))), # 1018883325 (5, Dummy('e', DateTime('2062-05-08 15:16:17'))), # 1018883325 (6, Dummy('f', 1072742620.0)), # 1073545923 (7, Dummy('f', 1072742900)), # 1073545928 (8, Dummy('g', date(2034, 2, 5))), # 1073599200 (9, Dummy('h', datetime(2034, 2, 5, 15, 20, 5))), # (varies) (10, Dummy('i', datetime(2034, 2, 5, 10, 17, 5, tzinfo=Eastern))), # 1073600117 ) self._index = DateIndex('date') self._noop_req = {'bar': 123} self._request = {'date': DateTime(0)} self._min_req = { 'date': { 'query': DateTime('2032-05-08 15:16:17'), 'range': 'min' } } self._max_req = { 'date': { 'query': DateTime('2032-05-08 15:16:17'), 'range': 'max' } } self._range_req = { 'date': { 'query': (DateTime('2002-05-08 15:16:17'), DateTime('2062-05-08 15:16:17')), 'range': 'min:max' } } self._zero_req = {'date': 0} self._none_req = {'date': None} self._float_req = {'date': 1072742620.0} self._int_req = {'date': 1072742900}
def setUp(self): from Products.PluginIndexes.DateIndex.DateIndex import DateIndex self._obj = DateIndex('foo_date') self._XML = _DATE_XML
def setUp(self): from Products.PluginIndexes.DateIndex.DateIndex import DateIndex self._obj = DateIndex('foo_date') self._obj._setPropValue('precision', 0) self._XML = _DATE_XML
def setUp(self): from Products.PluginIndexes.DateIndex.DateIndex import DateIndex NodeAdapterTestCase.setUp(self) self._obj = DateIndex('foo_date') self._XML = _DATE_XML