Changeset 397

Show
Ignore:
Timestamp:
07/13/06 10:37:51
Author:
crchemist
Message:

Added new tests and fix errors.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qTopic/branches/plone2.1/patch.py

    r396 r397  
    2222 
    2323def __init__(self): 
    24         #import pdb 
    25         #pdb.set_trace() 
    2624        self.topic_indexes = {} 
    2725        self.topic_indexes[CatalogTool.id] = {} 
     
    3331    """Helper method to initialize the topic tool 
    3432    """ 
    35  
    36     #import pdb 
    37     #pdb.set_trace() 
    3833    metadata = getattr(aq_base(self), 'topic_metadata', None) 
    3934    #test if metadata is empty or non existant, if so reinit. 
     
    8479    """ Add a new index along with descriptive information to the index 
    8580        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]={} 
    8884 
    8985    if criteria is None: criteria = self.getCriteriaForIndex(index, catalog_name) 
     
    9793        objIndex = TopicIndex(index, friendlyName, description, enabled, criteria) 
    9894 
    99     if not self.topic_indexes[catalog_name]: 
    100         self.topic_indexes[catalog_name]={} 
    10195    self.topic_indexes[catalog_name][index]=objIndex 
    10296    self._p_changed=1 
     
    106100    """ Add a new metadata field along with descriptive information to the 
    107101        metadata registry """ 
     102 
     103    if not self.topic_metadata.has_key(catalog_name): 
     104        self.topic_metadata[catalog_name]={} 
     105 
    108106    if self.topic_metadata[catalog_name].has_key(metadata): 
    109107        objMeta = self.topic_metadata[catalog_name][metadata] 
     
    124122    """ Updates an existing index in the registry, unrecognized values are 
    125123        added """ 
     124 
    126125    indexes = self.topic_indexes[catalog_name] 
    127126    if friendlyName == None: 
     
    139138    """ Updates an existing metadata field in the registry, unrecognized values are 
    140139        added """ 
     140    if not self.topic_metadata.has_key(catalog_name): 
     141        self.topic_metadata[catalog_name]={} 
    141142    meta = self.topic_metadata[catalog_name] 
    142143    if friendlyName == None: 
     
    152153def removeIndex(self, index, catalog_name=CatalogTool.id): 
    153154    """ Removes an existing index from the registry """ 
     155    if not self.topic_indexes.has_key(catalog_name): 
     156        self.topic_indexes[catalog_name]={} 
    154157    if self.topic_indexes[catalog_name].has_key(index): 
    155158        del self.topic_indexes[catalog_name][index] 
     
    159162def removeMetadata(self, metadata, catalog_name=CatalogTool.id): 
    160163    """ Removes an existing metadata field from the registry """ 
     164    m = metadata 
    161165    if self.topic_metadata[catalog_name].has_key(metadata): 
    162166        del self.topic_metadata[catalog_name][metadata] 
     
    168172    indexes = self.listCatalogFields() 
    169173 
    170     if not self.topic_indexes[catalog_name].has_key(catalog_name): 
     174    if not self.topic_indexes.has_key(catalog_name): 
    171175        self.topic_indexes[catalog_name]={} 
    172176 
     
    181185    """ create metadata for all indexes in the catalog """ 
    182186    metas = self.listCatalogMetadata(catalog_name) 
     187 
    183188    if not self.topic_metadata.has_key(catalog_name): 
    184189        self.topic_metadata[catalog_name]={} 
     190 
    185191    for i in metas: 
    186192        if not self.topic_metadata[catalog_name].has_key(i): 
     
    247253    for k in keys: 
    248254        if k not in metas: 
    249             self.removeMetadata(k
     255            self.removeMetadata(k, catalog_name
    250256 
    251257 
     
    334340        index if the firendlyname is empty or the index is not recognized 
    335341    """ 
     342    if not self.topic_indexes.has_key(catalog_name): 
     343        self.topic_indexes[catalog_name]={} 
     344 
    336345    if self.topic_indexes[catalog_name].has_key(index): 
    337346        return self.getIndex(index, catalog_name).friendlyName or index 
     
    379388def getMetadata(self, metadata, catalog_name=CatalogTool.id): 
    380389    """ Returns the TopicIndex object for a given metadata name """ 
     390 
    381391    self.updateMetadataFromCatalog(catalog_name) 
    382392    if self.topic_metadata[catalog_name].has_key(metadata): 
     
    415425        self.topic_metadata[catalog_name] = {} 
    416426 
    417 #import pdb 
    418 #pdb.set_trace() 
    419427ATTopicsTool.clearIndexes = clearIndexes 
    420428ATTopicsTool.old__init__ = ATTopicsTool.__init__ 
  • qTopic/branches/plone2.1/tests/test_topictool.py

    r396 r397  
    3838             'criteria'     : ['ATDateCriteria','ATDateRangeCriteria'] 
    3939            } 
    40 meta_def =  {'metadata'        : 'ModificationDate', 
     40meta_def =  {'metadata'     : 'ModificationDate', 
    4141             'friendlyName' : 'Modification Date For Test', 
    4242             'description'  : '' 
     
    4545conf_index_def = [i for i in tool_config.indexes if i.name == index_def['index']][0] 
    4646conf_meta_def = [m for m in tool_config.metadata if m.name == meta_def['metadata']][0] 
    47  
     47CATALOG_NAME = 'test_catalog' 
    4848class TestTool(atcttestcase.ATCTSiteTestCase): 
    4949 
    5050    def afterSetUp(self): 
    5151        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']) 
    5356 
    5457    def test_interface(self): 
     
    6366    def test_add_index(self): 
    6467        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) 
    6771        self.failUnlessEqual(index.index, index_def['index']) 
    6872        self.failUnlessEqual(index.friendlyName, index_def['friendlyName']) 
     
    7276        self.failUnlessEqual(index.criteria, tuple(index_def['criteria'])) 
    7377 
    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()) 
    7882        self.failUnless(index_def['index'] in t.getIndexes(1)) 
    7983 
    8084    def test_disable_index(self): 
    8185        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
    8488        self.failUnlessEqual(index.index, index_def['index']) 
    8589        self.failUnlessEqual(index.friendlyName, index_def['friendlyName']) 
     
    8993        self.failUnlessEqual(index.criteria, tuple(index_def['criteria'])) 
    9094 
    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()) 
    96100        #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)) 
    100104 
    101105    def test_add_bogus_index(self): 
     
    103107           on any call to one of the index list methods.""" 
    104108        t = self.tool 
    105         t.addIndex('bogosity', enabled = True
     109        t.addIndex('bogosity', enabled = True, catalog_name=CATALOG_NAME
    106110        error = False 
    107111        #The methods getEnabledFields, getEnabledIndexes, getIndexes, 
     
    110114 
    111115        try: 
    112             t.getIndex('bogosity'
     116            t.getIndex('bogosity', catalog_name=CATALOG_NAME
    113117        except AttributeError: 
    114118            error = True 
     
    116120 
    117121        #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)]) 
    129133 
    130134    def test_remove_index(self): 
    131135        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
    134138        error = None 
    135139        try: 
    136             index = t.topic_indexes[index_def['index']] 
     140            index = t.topic_indexes[CATALOG_NAME][index_def['index']] 
    137141        except KeyError: 
    138142            error = True 
     
    141145        error = None 
    142146        try: 
    143             index = t.getIndex(index_def['index']
     147            index = t.getIndex(index_def['index'], catalog_name=CATALOG_NAME
    144148        except AttributeError: 
    145149            error = True 
     
    147151        #Make sure the FriendlyName is reset to default 
    148152        self.failUnlessEqual(index.friendlyName, getattr(conf_index_def,'friendlyName')) 
    149          
     153 
    150154    def test_update_index(self): 
    151155        """An index with no criteria set should set all available criteria, 
     
    153157           values""" 
    154158        t = self.tool 
    155         t.addIndex(enabled = True, **index_def) 
     159        t.addIndex(enabled = True, catalog_name=CATALOG_NAME, **index_def) 
    156160        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
    159163        self.failUnless(index.criteria) 
    160164        self.failUnless(index.criteria != index_def['criteria']) 
     
    166170        """Ensure that the tool includes all indexes in the catalog""" 
    167171        t = self.tool 
    168         cat = getToolByName(self.tool, CatalogTool.id
     172        cat = getToolByName(self.tool, CATALOG_NAME
    169173        indexes = [field for field in cat.indexes()] 
    170         init_indexes = list(t.getIndexes()) 
     174        init_indexes = list(t.getIndexes(catalog_name=CATALOG_NAME)) 
    171175        unique_indexes = [i for i in indexes if i not in init_indexes] 
    172176        unique_indexes = unique_indexes + [i for i in init_indexes if i not in indexes] 
     
    177181           the catalog""" 
    178182        t = self.tool 
    179         cat = getToolByName(self.tool, CatalogTool.id
     183        cat = getToolByName(self.tool, CATALOG_NAME
    180184        #add 
    181185        error = False 
    182186        cat.manage_addIndex('nonsense', 'FieldIndex') 
    183187        try: 
    184             t.getIndex('nonsense'
     188            t.getIndex('nonsense', catalog_name=CATALOG_NAME
    185189        except AttributeError: 
    186190            error = True 
     
    190194        cat.delIndex('nonsense') 
    191195        try: 
    192             t.getIndex('nonsense'
     196            t.getIndex('nonsense', catalog_name=CATALOG_NAME
    193197        except AttributeError: 
    194198            error = True 
     
    199203    def test_add_metadata(self): 
    200204        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
    203207        self.failUnlessEqual(meta.index, meta_def['metadata']) 
    204208        self.failUnlessEqual(meta.friendlyName, meta_def['friendlyName']) 
     
    207211        self.failUnless(meta.enabled) 
    208212 
    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 
    214218    def test_disable_metadata(self): 
    215219        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
    218222        self.failUnlessEqual(meta.index, meta_def['metadata']) 
    219223        self.failUnlessEqual(meta.friendlyName, meta_def['friendlyName']) 
     
    222226        self.failIf(meta.enabled) 
    223227 
    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()) 
    228232        #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)) 
    232236 
    233237    def test_add_bogus_metadata(self): 
     
    235239           on any call to one of the index list methods""" 
    236240        t = self.tool 
    237         t.addMetadata('bogosity', enabled = True
    238          
     241        t.addMetadata('bogosity', enabled = True, catalog_name=CATALOG_NAME
     242 
    239243        error = False 
    240244        #The methods getEnabledMetadata, getAllMetadata, getMetadataDisplay, 
    241245        #and getMetadata all automatically restore fields from the catalog 
    242246        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)]) 
    257261 
    258262    def test_remove_metadata(self): 
    259263        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
    262266        error = None 
    263267        try: 
    264             meta = t.topic_metadata[meta_def['metadata']] 
     268            meta = t.topic_metadata[CATALOG_NAME][meta_def['metadata']] 
    265269        except KeyError: 
    266270            error = True 
     
    269273        error = None 
    270274        try: 
    271             meta = t.getMetadata(meta_def['metadata']
     275            meta = t.getMetadata(meta_def['metadata'], catalog_name=CATALOG_NAME
    272276        except AttributeError: 
    273277            error = True 
     
    275279        #Make sure the FriendlyName is reset to default 
    276280        self.failUnlessEqual(meta.friendlyName, getattr(conf_meta_def,'friendlyName')) 
    277          
     281 
    278282    def test_update_metadata(self): 
    279283        """Changes made using updateMetadata should not reset already set 
    280284           values""" 
    281285        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
    285289        self.failUnless(meta.friendlyName == 'New Name') 
    286290        self.failUnless(meta.enabled) 
     
    289293        """Ensure that the tool includes all metadata in the catalog""" 
    290294        t = self.tool 
    291         cat = getToolByName(self.tool, CatalogTool.id
     295        cat = getToolByName(self.tool, CATALOG_NAME
    292296        metadata = [field for field in cat.schema()] 
    293         init_metadata = list(t.getAllMetadata()) 
     297        init_metadata = list(t.getAllMetadata(catalog_name=CATALOG_NAME)) 
    294298        unique_metadata = [i for i in metadata if i not in init_metadata] 
    295299        unique_metadata = unique_metadata + [i for i in init_metadata if i not in metadata] 
     
    300304           the catalog""" 
    301305        t = self.tool 
    302         cat = getToolByName(self.tool, CatalogTool.id
     306        cat = getToolByName(self.tool, CATALOG_NAME
    303307        #add 
    304308        error = False 
    305309        cat.manage_addColumn('nonsense') 
    306310        try: 
    307             t.getMetadata('nonsense'
     311            t.getMetadata('nonsense', catalog_name=CATALOG_NAME
    308312        except AttributeError: 
    309313            error = True 
     
    313317        cat.delColumn('nonsense') 
    314318        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) 
    319323 
    320324tests.append(TestTool)