File: test_indexer.py

package info (click to toggle)
python-jtoolkit 0.7.8-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,436 kB
  • ctags: 2,536
  • sloc: python: 15,143; makefile: 20
file content (64 lines) | stat: -rw-r--r-- 2,537 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from jToolkit.data import indexer
import os

def clear_directory(directory):
    if os.path.exists(directory):
        for filename in os.listdir(directory):
            filepath = os.path.join(directory, filename)
            if os.path.isdir(filepath):
                clear_directory(filepath)
            else:
                os.remove(filepath)
        os.rmdir(directory)

class TestIndexer:
    """tests the standard Indexer"""
    def setup_method(self, method):
        self.indexdir = "%s.index" % method.__name__
        clear_directory(self.indexdir)
        self.indexer = indexer.Indexer(self)
        self.searcher = indexer.Searcher(self.indexdir)

    def teardown_method(self, method):
        self.searcher.close()
        clear_directory(self.indexdir)

    def test_create_index(self):
        self.indexer.startIndex()
        self.indexer.commitIndex()

    def test_delete_index(self):
        assert self.indexer.deleteIndex() == True

    def test_add_records(self):
        self.indexer.startIndex()
        records = [{"species": "bunny", "name": "Benjamin"}, {"species": "leopard", "name": "Standard"}, {"species": "complex creature", "names": "Bob Ann"}]
        self.indexer.indexFields(records)
        self.indexer.commitIndex()
        assert self.searcher.searchField("species", "bunny", "name") == [{"name": "Benjamin"}]
        assert self.searcher.searchField("name", "Standard", "species") == [{"species": "leopard"}]

    def test_search_all(self):
        self.test_add_records()
        assert self.searcher.searchAllFields("bunny",["name"]) == [{'name':'Benjamin'}]
        assert self.searcher.searchAllFields("bunny",(["name"],["species"])) == [{'name':'Benjamin'}]
        assert self.searcher.searchAllFields("complex",(["name"],["names"])) == [{'names':'Bob Ann'}]

    def test_delete_records(self):
        self.test_add_records()
        assert self.searcher.deleteDoc({"species": "bunny"}) == 1
        assert self.searcher.searchField("species", "bunny", "name") == []
        assert self.searcher.searchField("name", "Standard", "species") == [{"species": "leopard"}]

class TestIndexerProcess(TestIndexer):
    """tests the Indexer proxying through to another Indexer"""
    def setup_class(self):
        indexer.OldIndexer = indexer.Indexer
        indexer.OldSearcher = indexer.Searcher
        indexer.LaunchIndexProcess()
	indexer.INSIDE_APACHE = True

    def teardown_class(self):
        indexer.Indexer = indexer.OldIndexer
        indexer.Searcher = indexer.OldSearcher