Comment 1 for bug 920667

Revision history for this message
Chris Rossi (chris-archimedeanco) wrote :

from repoze.catalog.indexes.field import CatalogFieldIndex
from repoze.catalog.indexes.keyword import CatalogKeywordIndex
from repoze.catalog.indexes.path2 import CatalogPathIndex2
from repoze.catalog.indexes.text import CatalogTextIndex
from karl.tagging.index import TagIndex
from karl.utils import find_catalog
from karlserve.textindex import KarlPGTextIndex
from pyramid.traversal import find_resource

catalog = find_catalog(root)
dm = catalog.document_map
for docid in dm.docid_to_address.keys():
    assert dm.address_for_docid(docid), docid
for address in dm.address_to_docid.keys():
    assert find_resource(root, address), address

for name, index in catalog.items():
    if isinstance(index, (CatalogFieldIndex, CatalogKeywordIndex)):
        print "Checking", name
        for docids in index._fwd_index.values():
            for docid in docids:
                path = dm.address_for_docid(docid)
                assert path, docid
        for docid in index._rev_index.keys():
            path = dm.address_for_docid(docid)
            assert path, docid

    elif isinstance(index, CatalogTextIndex):
        print "Checking", name
        for docid in index.index._docwords.keys():
            path = dm.address_for_docid(docid)
            assert path, docid

    elif isinstance(index, KarlPGTextIndex):
        print "Checking", name
        for docid in index.docids():
            path = dm.address_for_docid(docid)
            assert path, docid

    elif isinstance(index, CatalogPathIndex2):
        print "Checking", name
        for docid in index.docid_to_path.keys():
            path = dm.address_for_docid(docid)
            assert path, docid

    elif isinstance(index, TagIndex):
        print "Checking", name
        engine = index.site.tags
        for doc in engine._tagid_to_obj.values():
            path = dm.address_for_docid(doc.item)
            assert path, doc.item

    else:
        print "Skipping", name