Changeset 397
- Timestamp:
- 07/13/06 10:37:51
- Files:
-
- qTopic/branches/plone2.1/patch.py (modified) (15 diffs)
- qTopic/branches/plone2.1/tests/test_topictool.py (modified) (23 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qTopic/branches/plone2.1/patch.py
r396 r397 22 22 23 23 def __init__(self): 24 #import pdb25 #pdb.set_trace()26 24 self.topic_indexes = {} 27 25 self.topic_indexes[CatalogTool.id] = {} … … 33 31 """Helper method to initialize the topic tool 34 32 """ 35 36 #import pdb37 #pdb.set_trace()38 33 metadata = getattr(aq_base(self), 'topic_metadata', None) 39 34 #test if metadata is empty or non existant, if so reinit. … … 84 79 """ Add a new index along with descriptive information to the index 85 80 registry """ 86 #import pdb 87 #pdb.set_trace() 81 82 if not self.topic_indexes.has_key(catalog_name): 83 self.topic_indexes[catalog_name]={} 88 84 89 85 if criteria is None: criteria = self.getCriteriaForIndex(index, catalog_name) … … 97 93 objIndex = TopicIndex(index, friendlyName, description, enabled, criteria) 98 94 99 if not self.topic_indexes[catalog_name]:100 self.topic_indexes[catalog_name]={}101 95 self.topic_indexes[catalog_name][index]=objIndex 102 96 self._p_changed=1 … … 106 100 """ Add a new metadata field along with descriptive information to the 107 101 metadata registry """ 102 103 if not self.topic_metadata.has_key(catalog_name): 104 self.topic_metadata[catalog_name]={} 105 108 106 if self.topic_metadata[catalog_name].has_key(metadata): 109 107 objMeta = self.topic_metadata[catalog_name][metadata] … … 124 122 """ Updates an existing index in the registry, unrecognized values are 125 123 added """ 124 126 125 indexes = self.topic_indexes[catalog_name] 127 126 if friendlyName == None: … … 139 138 """ Updates an existing metadata field in the registry, unrecognized values are 140 139 added """ 140 if not self.topic_metadata.has_key(catalog_name): 141 self.topic_metadata[catalog_name]={} 141 142 meta = self.topic_metadata[catalog_name] 142 143 if friendlyName == None: … … 152 153 def removeIndex(self, index, catalog_name=CatalogTool.id): 153 154 """ Removes an existing index from the registry """ 155 if not self.topic_indexes.has_key(catalog_name): 156 self.topic_indexes[catalog_name]={} 154 157 if self.topic_indexes[catalog_name].has_key(index): 155 158 del self.topic_indexes[catalog_name][index] … … 159 162 def removeMetadata(self, metadata, catalog_name=CatalogTool.id): 160 163 """ Removes an existing metadata field from the registry """ 164 m = metadata 161 165 if self.topic_metadata[catalog_name].has_key(metadata): 162 166 del self.topic_metadata[catalog_name][metadata] … … 168 172 indexes = self.listCatalogFields() 169 173 170 if not self.topic_indexes [catalog_name].has_key(catalog_name):174 if not self.topic_indexes.has_key(catalog_name): 171 175 self.topic_indexes[catalog_name]={} 172 176 … … 181 185 """ create metadata for all indexes in the catalog """ 182 186 metas = self.listCatalogMetadata(catalog_name) 187 183 188 if not self.topic_metadata.has_key(catalog_name): 184 189 self.topic_metadata[catalog_name]={} 190 185 191 for i in metas: 186 192 if not self.topic_metadata[catalog_name].has_key(i): … … 247 253 for k in keys: 248 254 if k not in metas: 249 self.removeMetadata(k )255 self.removeMetadata(k, catalog_name) 250 256 251 257 … … 334 340 index if the firendlyname is empty or the index is not recognized 335 341 """ 342 if not self.topic_indexes.has_key(catalog_name): 343 self.topic_indexes[catalog_name]={} 344 336 345 if self.topic_indexes[catalog_name].has_key(index): 337 346 return self.getIndex(index, catalog_name).friendlyName or index … … 379 388 def getMetadata(self, metadata, catalog_name=CatalogTool.id): 380 389 """ Returns the TopicIndex object for a given metadata name """ 390 381 391 self.updateMetadataFromCatalog(catalog_name) 382 392 if self.topic_metadata[catalog_name].has_key(metadata): … … 415 425 self.topic_metadata[catalog_name] = {} 416 426 417 #import pdb418 #pdb.set_trace()419 427 ATTopicsTool.clearIndexes = clearIndexes 420 428 ATTopicsTool.old__init__ = ATTopicsTool.__init__ qTopic/branches/plone2.1/tests/test_topictool.py
r396 r397 38 38 'criteria' : ['ATDateCriteria','ATDateRangeCriteria'] 39 39 } 40 meta_def = {'metadata' : 'ModificationDate',40 meta_def = {'metadata' : 'ModificationDate', 41 41 'friendlyName' : 'Modification Date For Test', 42 42 'description' : '' … … 45 45 conf_index_def = [i for i in tool_config.indexes if i.name == index_def['index']][0] 46 46 conf_meta_def = [m for m in tool_config.metadata if m.name == meta_def['metadata']][0] 47 47 CATALOG_NAME = 'test_catalog' 48 48 class TestTool(atcttestcase.ATCTSiteTestCase): 49 49 50 50 def afterSetUp(self): 51 51 self.tool = self.portal.portal_atct 52 manage_addZCatalog(self.portal, id = 'test_catalog', title = 'Test catalog') 52 manage_addZCatalog(self.portal, id = CATALOG_NAME, title = 'Test catalog') 53 self.cat = self.portal[CATALOG_NAME] 54 self.cat.addIndex('end', 'DateIndex') 55 self.cat.manage_addColumn(meta_def['metadata']) 53 56 54 57 def test_interface(self): … … 63 66 def test_add_index(self): 64 67 t = self.tool 65 t.addIndex(enabled = True, **index_def) 66 index = t.getIndex(index_def['index']) 68 69 t.addIndex(enabled = True, catalog_name=CATALOG_NAME, **index_def) 70 index = t.getIndex(index_def['index'], catalog_name=CATALOG_NAME) 67 71 self.failUnlessEqual(index.index, index_def['index']) 68 72 self.failUnlessEqual(index.friendlyName, index_def['friendlyName']) … … 72 76 self.failUnlessEqual(index.criteria, tuple(index_def['criteria'])) 73 77 74 self.failUnless(index in t.getEnabledIndexes( ))75 self.failUnless(index_def['index'] in [a[0] for a in t.getEnabledFields( )])76 self.failUnless(index_def['index'] in t.getIndexDisplay(True ).keys())77 self.failUnless(index_def['friendlyName'] in t.getIndexDisplay(True ).values())78 self.failUnless(index in t.getEnabledIndexes(catalog_name=CATALOG_NAME)) 79 self.failUnless(index_def['index'] in [a[0] for a in t.getEnabledFields(catalog_name=CATALOG_NAME)]) 80 self.failUnless(index_def['index'] in t.getIndexDisplay(True, catalog_name=CATALOG_NAME).keys()) 81 self.failUnless(index_def['friendlyName'] in t.getIndexDisplay(True, catalog_name=CATALOG_NAME).values()) 78 82 self.failUnless(index_def['index'] in t.getIndexes(1)) 79 83 80 84 def test_disable_index(self): 81 85 t = self.tool 82 t.addIndex(enabled = False, **index_def)83 index = t.getIndex(index_def['index'] )86 t.addIndex(enabled = False, catalog_name=CATALOG_NAME, **index_def) 87 index = t.getIndex(index_def['index'], catalog_name=CATALOG_NAME) 84 88 self.failUnlessEqual(index.index, index_def['index']) 85 89 self.failUnlessEqual(index.friendlyName, index_def['friendlyName']) … … 89 93 self.failUnlessEqual(index.criteria, tuple(index_def['criteria'])) 90 94 91 self.failIf(index in t.getEnabledIndexes( ))92 self.failIf(index_def['index'] in [a[0] for a in t.getEnabledFields( )])93 self.failIf(index_def['index'] in t.getIndexes(1 ))94 self.failIf(index_def['index'] in t.getIndexDisplay(True ).keys())95 self.failUnless(index_def['friendlyName'] not in t.getIndexDisplay(True ).values())95 self.failIf(index in t.getEnabledIndexes(catalog_name=CATALOG_NAME)) 96 self.failIf(index_def['index'] in [a[0] for a in t.getEnabledFields(catalog_name=CATALOG_NAME)]) 97 self.failIf(index_def['index'] in t.getIndexes(1,catalog_name=CATALOG_NAME)) 98 self.failIf(index_def['index'] in t.getIndexDisplay(True, catalog_name=CATALOG_NAME).keys()) 99 self.failUnless(index_def['friendlyName'] not in t.getIndexDisplay(True, catalog_name=CATALOG_NAME).values()) 96 100 #Make sure it's still in the un-limited list 97 self.failUnless(index_def['index'] in t.getIndexDisplay(False ).keys())98 self.failUnless(index_def['friendlyName'] in t.getIndexDisplay(False ).values())99 self.failUnless(index_def['index'] in t.getIndexes( ))101 self.failUnless(index_def['index'] in t.getIndexDisplay(False, catalog_name=CATALOG_NAME).keys()) 102 self.failUnless(index_def['friendlyName'] in t.getIndexDisplay(False, catalog_name=CATALOG_NAME).values()) 103 self.failUnless(index_def['index'] in t.getIndexes(catalog_name=CATALOG_NAME)) 100 104 101 105 def test_add_bogus_index(self): … … 103 107 on any call to one of the index list methods.""" 104 108 t = self.tool 105 t.addIndex('bogosity', enabled = True )109 t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME) 106 110 error = False 107 111 #The methods getEnabledFields, getEnabledIndexes, getIndexes, … … 110 114 111 115 try: 112 t.getIndex('bogosity' )116 t.getIndex('bogosity', catalog_name=CATALOG_NAME) 113 117 except AttributeError: 114 118 error = True … … 116 120 117 121 #Add 118 t.addIndex('bogosity', enabled = True )119 self.failIf('bogosity' in [a[0] for a in t.getEnabledFields( )])120 #Add 121 t.addIndex('bogosity', enabled = True )122 self.failIf('bogosity' in t.getIndexDisplay(True ).keys())123 #Add 124 t.addIndex('bogosity', enabled = True )125 self.failIf('bogosity' in t.getIndexes(1 ))126 #Add 127 t.addIndex('bogosity', enabled = True )128 self.failIf('bogosity' in [i.index for i in t.getEnabledIndexes( )])122 t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME) 123 self.failIf('bogosity' in [a[0] for a in t.getEnabledFields(catalog_name=CATALOG_NAME)]) 124 #Add 125 t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME) 126 self.failIf('bogosity' in t.getIndexDisplay(True, catalog_name=CATALOG_NAME).keys()) 127 #Add 128 t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME) 129 self.failIf('bogosity' in t.getIndexes(1, catalog_name=CATALOG_NAME)) 130 #Add 131 t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME) 132 self.failIf('bogosity' in [i.index for i in t.getEnabledIndexes(catalog_name=CATALOG_NAME)]) 129 133 130 134 def test_remove_index(self): 131 135 t = self.tool 132 t.addIndex( **index_def)133 t.removeIndex(index_def['index'] )136 t.addIndex(catalog_name=CATALOG_NAME, **index_def) 137 t.removeIndex(index_def['index'], catalog_name=CATALOG_NAME) 134 138 error = None 135 139 try: 136 index = t.topic_indexes[ index_def['index']]140 index = t.topic_indexes[CATALOG_NAME][index_def['index']] 137 141 except KeyError: 138 142 error = True … … 141 145 error = None 142 146 try: 143 index = t.getIndex(index_def['index'] )147 index = t.getIndex(index_def['index'], catalog_name=CATALOG_NAME) 144 148 except AttributeError: 145 149 error = True … … 147 151 #Make sure the FriendlyName is reset to default 148 152 self.failUnlessEqual(index.friendlyName, getattr(conf_index_def,'friendlyName')) 149 153 150 154 def test_update_index(self): 151 155 """An index with no criteria set should set all available criteria, … … 153 157 values""" 154 158 t = self.tool 155 t.addIndex(enabled = True, **index_def)159 t.addIndex(enabled = True, catalog_name=CATALOG_NAME, **index_def) 156 160 t.updateIndex(index_def['index'], criteria = None, 157 description = 'New Description' )158 index = t.getIndex(index_def['index'] )161 description = 'New Description', catalog_name=CATALOG_NAME) 162 index = t.getIndex(index_def['index'], catalog_name=CATALOG_NAME) 159 163 self.failUnless(index.criteria) 160 164 self.failUnless(index.criteria != index_def['criteria']) … … 166 170 """Ensure that the tool includes all indexes in the catalog""" 167 171 t = self.tool 168 cat = getToolByName(self.tool, C atalogTool.id)172 cat = getToolByName(self.tool, CATALOG_NAME) 169 173 indexes = [field for field in cat.indexes()] 170 init_indexes = list(t.getIndexes( ))174 init_indexes = list(t.getIndexes(catalog_name=CATALOG_NAME)) 171 175 unique_indexes = [i for i in indexes if i not in init_indexes] 172 176 unique_indexes = unique_indexes + [i for i in init_indexes if i not in indexes] … … 177 181 the catalog""" 178 182 t = self.tool 179 cat = getToolByName(self.tool, C atalogTool.id)183 cat = getToolByName(self.tool, CATALOG_NAME) 180 184 #add 181 185 error = False 182 186 cat.manage_addIndex('nonsense', 'FieldIndex') 183 187 try: 184 t.getIndex('nonsense' )188 t.getIndex('nonsense', catalog_name=CATALOG_NAME) 185 189 except AttributeError: 186 190 error = True … … 190 194 cat.delIndex('nonsense') 191 195 try: 192 t.getIndex('nonsense' )196 t.getIndex('nonsense', catalog_name=CATALOG_NAME) 193 197 except AttributeError: 194 198 error = True … … 199 203 def test_add_metadata(self): 200 204 t = self.tool 201 t.addMetadata(enabled = True, **meta_def)202 meta = t.getMetadata(meta_def['metadata'] )205 t.addMetadata(enabled = True, catalog_name=CATALOG_NAME,**meta_def) 206 meta = t.getMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME) 203 207 self.failUnlessEqual(meta.index, meta_def['metadata']) 204 208 self.failUnlessEqual(meta.friendlyName, meta_def['friendlyName']) … … 207 211 self.failUnless(meta.enabled) 208 212 209 self.failUnless(meta in t.getEnabledMetadata( ))210 self.failUnless(meta_def['metadata'] in t.getMetadataDisplay(True ).keys())211 self.failUnless(meta_def['friendlyName'] in t.getMetadataDisplay(True ).values())212 self.failUnless(meta_def['metadata'] in t.getAllMetadata(1 ))213 213 self.failUnless(meta in t.getEnabledMetadata(catalog_name=CATALOG_NAME)) 214 self.failUnless(meta_def['metadata'] in t.getMetadataDisplay(True, catalog_name=CATALOG_NAME).keys()) 215 self.failUnless(meta_def['friendlyName'] in t.getMetadataDisplay(True, catalog_name=CATALOG_NAME).values()) 216 self.failUnless(meta_def['metadata'] in t.getAllMetadata(1, catalog_name=CATALOG_NAME)) 217 214 218 def test_disable_metadata(self): 215 219 t = self.tool 216 t.addMetadata(enabled = False, **meta_def)217 meta = t.getMetadata(meta_def['metadata'] )220 t.addMetadata(enabled = False, catalog_name=CATALOG_NAME, **meta_def) 221 meta = t.getMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME) 218 222 self.failUnlessEqual(meta.index, meta_def['metadata']) 219 223 self.failUnlessEqual(meta.friendlyName, meta_def['friendlyName']) … … 222 226 self.failIf(meta.enabled) 223 227 224 self.failUnless(meta not in t.getEnabledMetadata( ))225 self.failIf(meta_def['metadata'] in t.getAllMetadata(1 ))226 self.failIf(meta_def['metadata'] in t.getMetadataDisplay(True ).keys())227 self.failIf(meta_def['friendlyName'] in t.getMetadataDisplay(True ).values())228 self.failUnless(meta not in t.getEnabledMetadata(catalog_name=CATALOG_NAME)) 229 self.failIf(meta_def['metadata'] in t.getAllMetadata(1, catalog_name=CATALOG_NAME)) 230 self.failIf(meta_def['metadata'] in t.getMetadataDisplay(True, catalog_name=CATALOG_NAME).keys()) 231 self.failIf(meta_def['friendlyName'] in t.getMetadataDisplay(True, catalog_name=CATALOG_NAME).values()) 228 232 #Make sure it's still in the un-limited list 229 self.failUnless(meta_def['metadata'] in t.getMetadataDisplay(False ).keys())230 self.failUnless(meta_def['friendlyName'] in t.getMetadataDisplay(False ).values())231 self.failUnless(meta_def['metadata'] in t.getAllMetadata( ))233 self.failUnless(meta_def['metadata'] in t.getMetadataDisplay(False, catalog_name=CATALOG_NAME).keys()) 234 self.failUnless(meta_def['friendlyName'] in t.getMetadataDisplay(False, catalog_name=CATALOG_NAME).values()) 235 self.failUnless(meta_def['metadata'] in t.getAllMetadata(catalog_name=CATALOG_NAME)) 232 236 233 237 def test_add_bogus_metadata(self): … … 235 239 on any call to one of the index list methods""" 236 240 t = self.tool 237 t.addMetadata('bogosity', enabled = True )238 241 t.addMetadata('bogosity', enabled = True, catalog_name=CATALOG_NAME) 242 239 243 error = False 240 244 #The methods getEnabledMetadata, getAllMetadata, getMetadataDisplay, 241 245 #and getMetadata all automatically restore fields from the catalog 242 246 try: 243 t.getMetadata('bogosity' )244 except AttributeError: 245 error = True 246 self. failUnless(error)247 248 #Add 249 t.addMetadata('bogosity', enabled = True )250 self.failIf('bogosity' in t.getMetadataDisplay(True ).keys())251 #Add 252 t.addMetadata('bogosity', enabled = True )253 self.failIf('bogosity' in t.getAllMetadata(1 ))254 #Add 255 t.addMetadata('bogosity', enabled = True )256 self.failIf('bogosity' in [i.index for i in t.getEnabledMetadata( )])247 t.getMetadata('bogosity', catalog_name=CATALOG_NAME) 248 except AttributeError: 249 error = True 250 self.assert_(error) 251 252 #Add 253 t.addMetadata('bogosity', enabled = True, catalog_name=CATALOG_NAME) 254 self.failIf('bogosity' in t.getMetadataDisplay(True, catalog_name=CATALOG_NAME).keys()) 255 #Add 256 t.addMetadata('bogosity', enabled = True, catalog_name=CATALOG_NAME) 257 self.failIf('bogosity' in t.getAllMetadata(1, catalog_name=CATALOG_NAME)) 258 #Add 259 t.addMetadata('bogosity', enabled = True, catalog_name=CATALOG_NAME) 260 self.failIf('bogosity' in [i.index for i in t.getEnabledMetadata(catalog_name=CATALOG_NAME)]) 257 261 258 262 def test_remove_metadata(self): 259 263 t = self.tool 260 t.addMetadata( **meta_def)261 t.removeMetadata(meta_def['metadata'] )264 t.addMetadata(catalog_name=CATALOG_NAME, **meta_def) 265 t.removeMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME) 262 266 error = None 263 267 try: 264 meta = t.topic_metadata[ meta_def['metadata']]268 meta = t.topic_metadata[CATALOG_NAME][meta_def['metadata']] 265 269 except KeyError: 266 270 error = True … … 269 273 error = None 270 274 try: 271 meta = t.getMetadata(meta_def['metadata'] )275 meta = t.getMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME) 272 276 except AttributeError: 273 277 error = True … … 275 279 #Make sure the FriendlyName is reset to default 276 280 self.failUnlessEqual(meta.friendlyName, getattr(conf_meta_def,'friendlyName')) 277 281 278 282 def test_update_metadata(self): 279 283 """Changes made using updateMetadata should not reset already set 280 284 values""" 281 285 t = self.tool 282 t.addMetadata(enabled = True, **meta_def)283 t.updateMetadata(meta_def['metadata'], friendlyName = 'New Name' )284 meta = t.getMetadata(meta_def['metadata'] )286 t.addMetadata(enabled = True, catalog_name=CATALOG_NAME, **meta_def) 287 t.updateMetadata(meta_def['metadata'], friendlyName = 'New Name', catalog_name=CATALOG_NAME) 288 meta = t.getMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME) 285 289 self.failUnless(meta.friendlyName == 'New Name') 286 290 self.failUnless(meta.enabled) … … 289 293 """Ensure that the tool includes all metadata in the catalog""" 290 294 t = self.tool 291 cat = getToolByName(self.tool, C atalogTool.id)295 cat = getToolByName(self.tool, CATALOG_NAME) 292 296 metadata = [field for field in cat.schema()] 293 init_metadata = list(t.getAllMetadata( ))297 init_metadata = list(t.getAllMetadata(catalog_name=CATALOG_NAME)) 294 298 unique_metadata = [i for i in metadata if i not in init_metadata] 295 299 unique_metadata = unique_metadata + [i for i in init_metadata if i not in metadata] … … 300 304 the catalog""" 301 305 t = self.tool 302 cat = getToolByName(self.tool, C atalogTool.id)306 cat = getToolByName(self.tool, CATALOG_NAME) 303 307 #add 304 308 error = False 305 309 cat.manage_addColumn('nonsense') 306 310 try: 307 t.getMetadata('nonsense' )311 t.getMetadata('nonsense', catalog_name=CATALOG_NAME) 308 312 except AttributeError: 309 313 error = True … … 313 317 cat.delColumn('nonsense') 314 318 try: 315 t.getMetadata('nonsense' )316 except AttributeError: 317 error = True 318 self. failUnless(error)319 t.getMetadata('nonsense',catalog_name=CATALOG_NAME) 320 except AttributeError: 321 error = True 322 self.assert_(error) 319 323 320 324 tests.append(TestTool)
