Changeset 392
- Timestamp:
- 02/13/07 09:58:24 (2 years ago)
- Files:
-
- pyndexter/trunk/pyndexter/indexers/pyndex.py (modified) (1 diff)
- pyndexter/trunk/pyndexter/indexers/tests.py (modified) (3 diffs)
- pyndexter/trunk/pyndexter/__init__.py (modified) (1 diff)
- pyndexter/trunk/pyndexter/sources/mock.py (modified) (2 diffs)
- pyndexter/trunk/pyndexter/tests/corpus.py (modified) (2 diffs)
- pyndexter/trunk/pyndexter/tests/framework.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pyndexter/trunk/pyndexter/indexers/pyndex.py
r387 r392 40 40 # FIXME Should probably do a search on each term, and perform set 41 41 # operations. 42 qs = ' '.join(query.terms()) 42 qs = ' '.join(query.terms()).encode('utf-8') 43 43 return PyndexResult(self, query, self.db.find(qs)) 44 44 pyndexter/trunk/pyndexter/indexers/tests.py
r391 r392 3 3 import tempfile 4 4 from pyndexter import * 5 from pyndexter.tests.corpus import * 5 6 6 7 7 8 class 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()12 9 13 10 def setUp(self): 14 11 self.path = tempfile.mkdtemp() 15 open(self.path + '/foo', 'w').write("FOO")16 12 17 13 indexer = self.__class__.__name__[:-8].lower() … … 28 24 29 25 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'))]) 31 42 32 43 def test_search(self): 33 44 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)] 35 46 uris.sort() 36 self.assertEquals( self.hits, uris)47 self.assertEquals(uris, and_hits) 37 48 38 49 … … 67 78 def suite(): 68 79 suite = unittest.TestSuite() 80 suite.addTest(unittest.makeSuite(BuiltinTestCase, 'test')) 69 81 suite.addTest(unittest.makeSuite(XapianTestCase, 'test')) 70 82 suite.addTest(unittest.makeSuite(HypeTestCase, 'test')) 71 83 suite.addTest(unittest.makeSuite(HyperestraierTestCase, 'test')) 72 suite.addTest(unittest.makeSuite(BuiltinTestCase, 'test'))73 84 suite.addTest(unittest.makeSuite(PyndexTestCase, 'test')) 74 85 suite.addTest(unittest.makeSuite(LuceneTestCase, 'test')) pyndexter/trunk/pyndexter/__init__.py
r391 r392 911 911 or a URI.""" 912 912 self._assert_rw() 913 if isinstance(document, basestring):913 if isinstance(document, (URI, basestring)): 914 914 document = self.fetch(document) 915 915 return self.indexer.replace(document) pyndexter/trunk/pyndexter/sources/mock.py
r390 r392 18 18 for doc in docs: 19 19 if self._glob_predicate(doc.uri): 20 self._state[unicode(doc.uri)] = doc.changed 20 21 yield doc.uri 21 22 … … 37 38 return hash(','.join((uris))) 38 39 40 39 41 source_factory = PluginFactory(MockSource, 40 42 include=PluginFactory.List(str), pyndexter/trunk/pyndexter/tests/corpus.py
r391 r392 7 7 # 8 8 9 from pyndexter import Document 9 from pyndexter import Document, URI 10 10 11 11 # Text thanks to the Lorem Ipsum generator at http://www.lipsum.com/ … … 209 209 changed=index)) 210 210 for index, text in enumerate(corpus)]) 211 212 mock_uri_list = [URI(u'mock://%i' % i) for i, doc in enumerate(documents)] 213 mock_uri_list.sort() 214 215 simple_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')] 219 simple_query = u'lorem' 220 221 and_hits = [URI(u'mock://0'), URI(u'mock://16'), URI(u'mock://3'), 222 URI(u'mock://4'), URI(u'mock://5')] 223 and_query = u'lorem ipsum' 224 225 not_hits = map(URI, [u'mock://16', u'mock://3', u'mock://4']) 226 not_query = u'lorem ipsum -placerat' 227 pyndexter/trunk/pyndexter/tests/framework.py
r391 r392 11 11 from pyndexter.sources.mock import MockSource 12 12 from 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() 13 from pyndexter.tests.corpus import * 18 14 19 15 20 16 class 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 34 17 def setUp(self): 35 18 self.framework = Framework('mock://') … … 58 41 59 42 def test_search_string_simple(self): 60 self.assertEquals(s elf.simple_hits,43 self.assertEquals(simple_hits, 61 44 [hit.uri for hit in 62 self.framework.search(s elf.simple_query)])45 self.framework.search(simple_query)]) 63 46 64 47 def test_search_Query_simple(self): 65 query = Query(s elf.simple_query)66 self.assertEquals(s elf.simple_hits,48 query = Query(simple_query) 49 self.assertEquals(simple_hits, 67 50 [hit.uri for hit in self.framework.search(query)]) 68 51 69 52 def test_search_string_and(self): 70 self.assertEquals( self.and_hits,53 self.assertEquals(and_hits, 71 54 [hit.uri for hit in 72 self.framework.search( self.and_query)])55 self.framework.search(and_query)]) 73 56 74 57 def test_search_string_not(self): 75 self.assertEquals( self.not_hits,58 self.assertEquals(not_hits, 76 59 [hit.uri for hit in 77 self.framework.search( self.not_query)])60 self.framework.search(not_query)]) 78 61 79 62
