Changeset 452
- Timestamp:
- 08/21/07 08:28:15 (1 year ago)
- Files:
-
- pyndexter/trunk/pyndexter/indexers/_builtin.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/builtin.py)
- pyndexter/trunk/pyndexter/indexers/_hype.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/hype.py) (1 diff)
- pyndexter/trunk/pyndexter/indexers/_hyperestraier.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/hyperestraier.py)
- pyndexter/trunk/pyndexter/indexers/_lucene.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/lucene.py)
- pyndexter/trunk/pyndexter/indexers/_lupy.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/lupy.py) (1 diff)
- pyndexter/trunk/pyndexter/indexers/_mock.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/mock.py) (2 diffs)
- pyndexter/trunk/pyndexter/indexers/_pyndex.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/pyndex.py) (1 diff)
- pyndexter/trunk/pyndexter/indexers/_swishe.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/swishe.py)
- pyndexter/trunk/pyndexter/indexers/tests.py (modified) (3 diffs)
- pyndexter/trunk/pyndexter/indexers/_xapian.py (moved) (moved from pyndexter/trunk/pyndexter/indexers/xapian.py) (1 diff)
- pyndexter/trunk/pyndexter/__init__.py (modified) (3 diffs)
- pyndexter/trunk/pyndexter/stemmers/_porter.py (moved) (moved from pyndexter/trunk/pyndexter/stemmers/porter.py)
- pyndexter/trunk/pyndexter/stemmers/_snowball.py (moved) (moved from pyndexter/trunk/pyndexter/stemmers/snowball.py)
- pyndexter/trunk/pyndexter/tests/framework.py (modified) (1 diff)
- pyndexter/trunk/pyndexter/tests/__init__.py (modified) (2 diffs)
- pyndexter/trunk/pyndexter/tests/util.py (moved) (moved from pyndexter/trunk/pyndexter/tests/excerpt.py) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pyndexter/trunk/pyndexter/indexers/_hype.py
r395 r452 49 49 import os 50 50 from pyndexter import * 51 hype = __import__('hype') 51 import hype 52 52 53 53 pyndexter/trunk/pyndexter/indexers/_lupy.py
r395 r452 34 34 import os 35 35 from pyndexter import * 36 lupy = __import__('lupy', {}, {}, ['']) 37 lupy.indexer = __import__('lupy.indexer', {}, {}, ['']) 38 lupy.search = __import__('lupy.search', {}, {}, ['']) 36 import lupy 37 import lupy.indexer 38 import lupy.search 39 39 40 40 pyndexter/trunk/pyndexter/indexers/_mock.py
r395 r452 13 13 from StringIO import StringIO 14 14 from pyndexter import * 15 16 17 class MockStateStore(StateStore):18 """Memory-only StateStore."""19 def __init__(self):20 self.stored = False21 self.buffer = StringIO()22 23 def store(self):24 self.stored = True25 self.buffer = StringIO()26 return self.buffer27 28 def retrieve(self):29 self.buffer.seek(0)30 return self.buffer31 32 def exists(self):33 return self.stored34 15 35 16 … … 67 48 self.cache[document.uri] = document.content 68 49 69 def state_store(self):70 return MockStateStore()71 72 50 def search(self, query): 73 51 docs = self.cache.keys() pyndexter/trunk/pyndexter/indexers/_pyndex.py
r395 r452 37 37 from pyndexter import * 38 38 import metakit 39 pyndex = __import__('pyndex') 40 __import__('pyndex.indexer') 39 import pyndex 40 import pyndex.indexer 41 41 42 42 pyndexter/trunk/pyndexter/indexers/tests.py
r393 r452 2 2 import unittest 3 3 import tempfile 4 from textwrap import wrap 4 5 from pyndexter import * 5 from pyndexter.tests .corpus import *6 from pyndexter.tests import corpus 6 7 7 8 8 9 class IndexerTestCase(unittest.TestCase): 9 def setUp(self):10 self.path = tempfile.mkdtemp()10 def construct_framework(cls): 11 path = tempfile.mkdtemp() 11 12 12 13 try: 13 indexer = self.indexer % os.path.join(self.path, 'indexer.db')14 indexer = cls.indexer % os.path.join(path, 'indexer.db') 14 15 except AttributeError: 15 indexer = '%s://%s' % ( self.__class__.__name__[:-8].lower(), os.path.join(self.path, 'indexer.db'))16 indexer = '%s://%s' % (cls.__name__[:-8].lower(), os.path.join(path, 'indexer.db')) 16 17 17 self.framework = Framework(indexer) 18 self.framework.add_source('mock://') 18 return path, Framework(indexer) 19 construct_framework = classmethod(construct_framework) 20 21 def setUp(self): 22 self.path, self.framework = self.construct_framework() 23 for doc in corpus.documents.values(): 24 self.framework.index(doc) 19 25 20 26 def tearDown(self): … … 27 33 28 34 def test_indexing(self): 29 filtered = [] 30 31 def filter(framework, context, stream): 32 for transition, uri in stream: 33 filtered.append((transition, uri)) 34 yield transition, uri 35 36 self.framework.update(filter=filter) 37 filtered.sort() 38 self.assertEquals(filtered, [(1, uri) for uri in mock_uri_list]) 39 40 filtered = [] 41 documents[u'mock://12'].attributes['changed'] += 1 42 self.framework.update(filter=filter) 43 filtered.sort() 44 self.assertEquals(filtered, [(2, URI(u'mock://12'))]) 45 46 def test_fetch_via_source(self): 47 uri = u'mock://1' 48 doc = self.framework.fetch(uri) 49 self.assertEquals(doc.quality, 1.0) 50 self.assertEquals(doc.content, documents[uri].content) 51 self.assertRaises(DocumentNotFound, self.framework.fetch, u'file://foo') 35 pass 52 36 53 37 def test_indexer_iteration(self): 54 self.framework.update() 55 self.assertEquals(mock_uri_list, sorted([uri for uri in self.framework.indexer])) 56 57 def test_source_iteration(self): 58 self.framework.update() 59 self.assertEquals(mock_uri_list, sorted([uri for uri in self.framework.source])) 38 self.assertEquals(corpus.mock_uri_list, sorted([uri for uri in self.framework.indexer])) 60 39 61 40 # Search tests 62 41 def test_search_string_simple(self): 63 self.framework.update()64 self.assertEquals( simple_hits, sorted([hit.uri for hit in self.framework.search(simple_query)]))42 hits = self.framework.search(corpus.simple_query) 43 self.assertEquals(corpus.simple_hits, sorted([hit.uri for hit in hits])) 65 44 66 45 def test_search_Query_simple(self): 67 self.framework.update()68 query = Query(simple_query)69 self.assertEquals( simple_hits, sorted([hit.uri for hit in self.framework.search(query)]))46 query = Query(corpus.simple_query) 47 hits = self.framework.search(query) 48 self.assertEquals(corpus.simple_hits, sorted([hit.uri for hit in hits])) 70 49 71 50 def test_search_string_and(self): 72 self.framework.update()73 self.assertEquals( and_hits, sorted([hit.uri for hit in self.framework.search(and_query)]))51 hits = self.framework.search(corpus.and_query) 52 self.assertEquals(corpus.and_hits, sorted([hit.uri for hit in hits])) 74 53 75 54 def test_search_string_not(self): 76 self.framework.update()77 self.assertEquals( not_hits, sorted([hit.uri for hit in self.framework.search(not_query)]))55 hits = self.framework.search(corpus.not_query) 56 self.assertEquals(corpus.not_hits, sorted([hit.uri for hit in hits])) 78 57 79 58 … … 120 99 def suite(): 121 100 suite = unittest.TestSuite() 122 suite.addTest(unittest.makeSuite(BuiltinTestCase)) 123 suite.addTest(unittest.makeSuite(BuiltinCachingTestCase)) 124 suite.addTest(unittest.makeSuite(BuiltinCompactTestCase)) 125 suite.addTest(unittest.makeSuite(BuiltinCompactCachingTestCase)) 126 suite.addTest(unittest.makeSuite(XapianTestCase)) 127 suite.addTest(unittest.makeSuite(HypeTestCase)) 128 suite.addTest(unittest.makeSuite(HyperestraierTestCase)) 129 suite.addTest(unittest.makeSuite(PyndexTestCase)) 130 suite.addTest(unittest.makeSuite(LuceneTestCase)) 131 suite.addTest(unittest.makeSuite(LupyTestCase)) 101 for case in (BuiltinTestCase, BuiltinCachingTestCase, 102 BuiltinCompactTestCase, BuiltinCompactCachingTestCase, 103 XapianTestCase, HypeTestCase, HyperestraierTestCase, 104 PyndexTestCase, LuceneTestCase, LupyTestCase, BuiltinTestCase, 105 BuiltinCachingTestCase): 106 use_test = False 107 try: 108 case.construct_framework() 109 use_test = True 110 except InvalidModule, e: 111 text = wrap(str(e), initial_indent=' ', subsequent_indent=' ') 112 print 'SKIP: %s indexer testss' % (case.__name__,) 113 print '\n'.join(text) 114 except: 115 use_test = True 116 if use_test: 117 suite.addTest(unittest.makeSuite(case)) 132 118 return suite 133 119 pyndexter/trunk/pyndexter/indexers/_xapian.py
r395 r452 41 41 import re 42 42 from pyndexter import * 43 xapian = __import__('xapian') 43 import xapian 44 44 45 45 pyndexter/trunk/pyndexter/__init__.py
r451 r452 61 61 SourceError 62 62 InvalidQuery 63 FrameworkError 64 InvalidModule 63 65 64 66 REMOVED ADDED MODIFIED … … 276 278 ("camembert cheese")) 277 279 280 >>> Query('one two:three') 281 (and 282 ("one") 283 (two:"three")) 278 284 """ 279 285 … … 800 806 uri = URI(uri) 801 807 try: 802 module_name = 'pyndexter.%ss. %s' % (type, uri.scheme)808 module_name = 'pyndexter.%ss._%s' % (type, uri.scheme) 803 809 module = __import__(module_name, {}, {}, ['']) 804 810 except ImportError, e: pyndexter/trunk/pyndexter/tests/framework.py
r393 r452 9 9 import unittest 10 10 from pyndexter import * 11 from pyndexter.sources.mock import MockSource 12 from pyndexter.indexers.mock import MockIndexer 11 from pyndexter.indexers._mock import MockIndexer 13 12 from pyndexter.indexers.tests import IndexerTestCase 14 13 15 14 16 15 class FrameworkTestCase(IndexerTestCase): 17 def setUp(self): 18 self.framework = Framework('mock://') 19 self.framework.add_source('mock://') 20 21 def tearDown(self): 22 pass 16 indexer = 'mock://%s' 23 17 24 18 def test_indexer_uri(self): 25 19 self.assertTrue(isinstance(self.framework.indexer, MockIndexer)) 26 self.assertTrue(isinstance(self.framework.source.sources[0], MockSource))27 20 28 21 pyndexter/trunk/pyndexter/tests/__init__.py
r393 r452 6 6 import pyndexter, pyndexter.util 7 7 import pyndexter.tests.framework 8 import pyndexter.tests. excerpt8 import pyndexter.tests.util 9 9 10 10 suite = unittest.TestSuite() … … 12 12 suite.addTest(doctest.DocTestSuite(pyndexter.util)) 13 13 suite.addTest(pyndexter.tests.framework.suite()) 14 suite.addTest(pyndexter.tests. excerpt.suite())14 suite.addTest(pyndexter.tests.util.suite()) 15 15 return suite 16 16 pyndexter/trunk/pyndexter/tests/util.py
r390 r452 1 1 import unittest 2 2 from pyndexter import * 3 from pyndexter.util import excerpt 3 4 from pyndexter.tests.corpus import documents, corpus 4 5 … … 6 7 def test_excerpt(self): 7 8 terms = Query('lorem ipsum').terms() 8 excerpt = Excerpt(documents['mock://3'], terms)9 self.assertEquals(unicode( excerpt), u"""... Etiam pharetra. Vivamus """9 text = excerpt(documents['mock://3'].content, terms) 10 self.assertEquals(unicode(text), u"""... Etiam pharetra. Vivamus """ 10 11 """diam ipsum, luctus et, luctus nec, auctor vel,\ntellus. """ 11 12 """Vestibulum lobortis feugiat dolor. Phasellus diam felis, """
