Changeset 392

Show
Ignore:
Timestamp:
02/13/07 09:58:24 (2 years ago)
Author:
athomas
Message:

pyndexter: More unit test updates, plus some bugfixes that came out of the woodwork due to the testing! Woot!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pyndexter/trunk/pyndexter/indexers/pyndex.py

    r387 r392  
    4040        # FIXME Should probably do a search on each term, and perform set 
    4141        # operations. 
    42         qs = ' '.join(query.terms()) 
     42        qs = ' '.join(query.terms()).encode('utf-8') 
    4343        return PyndexResult(self, query, self.db.find(qs)) 
    4444 
  • pyndexter/trunk/pyndexter/indexers/tests.py

    r391 r392  
    33import tempfile 
    44from pyndexter import * 
     5from pyndexter.tests.corpus import * 
    56 
    67 
    78class IndexerTestCase(unittest.TestCase): 
    8     search = 'lorem ipsum' 
    9     hits = map(URI, [u'mock://5', u'mock://16', u'mock://0', u'mock://4', 
    10                      u'mock://3']) 
    11     hits.sort() 
    129 
    1310    def setUp(self): 
    1411        self.path = tempfile.mkdtemp() 
    15         open(self.path + '/foo', 'w').write("FOO") 
    1612 
    1713        indexer = self.__class__.__name__[:-8].lower() 
     
    2824 
    2925    def test_indexing(self): 
    30         self.framework.update() 
     26        filtered = [] 
     27 
     28        def filter(framework, context, stream): 
     29            for transition, uri in stream: 
     30                filtered.append((transition, uri)) 
     31                yield transition, uri 
     32 
     33        self.framework.update(filter=filter) 
     34        filtered.sort() 
     35        self.assertEquals(filtered, [(1, uri) for uri in mock_uri_list]) 
     36 
     37        filtered = [] 
     38        documents[u'mock://12'].attributes['changed'] += 1 
     39        self.framework.update(filter=filter) 
     40        filtered.sort() 
     41        self.assertEquals(filtered, [(2, URI(u'mock://12'))]) 
    3142 
    3243    def test_search(self): 
    3344        self.framework.update() 
    34         uris = [hit.uri for hit in self.framework.search(self.search)] 
     45        uris = [hit.uri for hit in self.framework.search(and_query)] 
    3546        uris.sort() 
    36         self.assertEquals(self.hits, uris) 
     47        self.assertEquals(uris, and_hits) 
    3748 
    3849 
     
    6778def suite(): 
    6879    suite = unittest.TestSuite() 
     80    suite.addTest(unittest.makeSuite(BuiltinTestCase, 'test')) 
    6981    suite.addTest(unittest.makeSuite(XapianTestCase, 'test')) 
    7082    suite.addTest(unittest.makeSuite(HypeTestCase, 'test')) 
    7183    suite.addTest(unittest.makeSuite(HyperestraierTestCase, 'test')) 
    72     suite.addTest(unittest.makeSuite(BuiltinTestCase, 'test')) 
    7384    suite.addTest(unittest.makeSuite(PyndexTestCase, 'test')) 
    7485    suite.addTest(unittest.makeSuite(LuceneTestCase, 'test')) 
  • pyndexter/trunk/pyndexter/__init__.py

    r391 r392  
    911911        or a URI.""" 
    912912        self._assert_rw() 
    913         if isinstance(document, basestring): 
     913        if isinstance(document, (URI, basestring)): 
    914914            document = self.fetch(document) 
    915915        return self.indexer.replace(document) 
  • pyndexter/trunk/pyndexter/sources/mock.py

    r390 r392  
    1818        for doc in docs: 
    1919            if self._glob_predicate(doc.uri): 
     20                self._state[unicode(doc.uri)] = doc.changed 
    2021                yield doc.uri 
    2122 
     
    3738        return hash(','.join((uris))) 
    3839 
     40 
    3941source_factory = PluginFactory(MockSource, 
    4042                               include=PluginFactory.List(str), 
  • pyndexter/trunk/pyndexter/tests/corpus.py

    r391 r392  
    77# 
    88 
    9 from pyndexter import Document 
     9from pyndexter import Document, URI 
    1010 
    1111# Text thanks to the Lorem Ipsum generator at http://www.lipsum.com/ 
     
    209209                           changed=index)) 
    210210                  for index, text in enumerate(corpus)]) 
     211 
     212mock_uri_list = [URI(u'mock://%i' % i) for i, doc in enumerate(documents)] 
     213mock_uri_list.sort() 
     214 
     215simple_hits = [URI(u'mock://0'), URI(u'mock://1'), URI(u'mock://10'), 
     216               URI(u'mock://12'), URI(u'mock://13'), URI(u'mock://14'), 
     217               URI(u'mock://16'), URI(u'mock://3'), URI(u'mock://4'), 
     218               URI(u'mock://5'), URI(u'mock://6'), URI(u'mock://8')] 
     219simple_query = u'lorem' 
     220 
     221and_hits = [URI(u'mock://0'), URI(u'mock://16'), URI(u'mock://3'), 
     222            URI(u'mock://4'), URI(u'mock://5')] 
     223and_query = u'lorem ipsum' 
     224 
     225not_hits = map(URI, [u'mock://16', u'mock://3', u'mock://4']) 
     226not_query = u'lorem ipsum -placerat' 
     227 
  • pyndexter/trunk/pyndexter/tests/framework.py

    r391 r392  
    1111from pyndexter.sources.mock import MockSource 
    1212from pyndexter.indexers.mock import MockIndexer, MockResult 
    13 from pyndexter.tests.corpus import documents, corpus 
    14  
    15  
    16 mock_uri_list = [URI(u'mock://%i' % i) for i, doc in enumerate(documents)] 
    17 mock_uri_list.sort() 
     13from pyndexter.tests.corpus import * 
    1814 
    1915 
    2016class FrameworkTestCase(unittest.TestCase): 
    21     simple_hits = [URI(u'mock://0'), URI(u'mock://1'), URI(u'mock://10'), 
    22                    URI(u'mock://12'), URI(u'mock://13'), URI(u'mock://14'), 
    23                    URI(u'mock://16'), URI(u'mock://3'), URI(u'mock://4'), 
    24                    URI(u'mock://5'), URI(u'mock://6'), URI(u'mock://8')] 
    25     simple_query = u'lorem' 
    26  
    27     and_hits = [URI(u'mock://0'), URI(u'mock://16'), URI(u'mock://3'), 
    28                 URI(u'mock://4'), URI(u'mock://5')] 
    29     and_query = u'lorem ipsum' 
    30  
    31     not_hits = map(URI, [u'mock://16', u'mock://3', u'mock://4']) 
    32     not_query = u'lorem ipsum -placerat' 
    33  
    3417    def setUp(self): 
    3518        self.framework = Framework('mock://') 
     
    5841 
    5942    def test_search_string_simple(self): 
    60         self.assertEquals(self.simple_hits, 
     43        self.assertEquals(simple_hits, 
    6144                          [hit.uri for hit in 
    62                            self.framework.search(self.simple_query)]) 
     45                           self.framework.search(simple_query)]) 
    6346 
    6447    def test_search_Query_simple(self): 
    65         query = Query(self.simple_query) 
    66         self.assertEquals(self.simple_hits, 
     48        query = Query(simple_query) 
     49        self.assertEquals(simple_hits, 
    6750                          [hit.uri for hit in self.framework.search(query)]) 
    6851 
    6952    def test_search_string_and(self): 
    70         self.assertEquals(self.and_hits, 
     53        self.assertEquals(and_hits, 
    7154                          [hit.uri for hit in 
    72                            self.framework.search(self.and_query)]) 
     55                           self.framework.search(and_query)]) 
    7356 
    7457    def test_search_string_not(self): 
    75         self.assertEquals(self.not_hits, 
     58        self.assertEquals(not_hits, 
    7659                          [hit.uri for hit in 
    77                            self.framework.search(self.not_query)]) 
     60                           self.framework.search(not_query)]) 
    7861 
    7962