def do_searching(self): '''Run search. ''' # start searching if not self.max_page_limit: wiki_searcher = Searcher(self.start_lemma_name, self.end_lemma_name) else: try: limit_int = int(self.max_page_limit) except ValueError: self.display_text('Invallid maximum limit.') return wiki_searcher = Searcher(self.start_lemma_name, self.end_lemma_name, limit_int) self.display_text('Busy searching...') log('Busy searching...') wiki_searcher.run_search() # got it, display result if wiki_searcher.found_target: self.show_result(wiki_searcher.get_result()) else: self.clear_text() self.display_text('Search reach the maximum page limit.\n') # clean Entry for next search self.start_entry.delete(0, tk.END) self.end_entry.delete(0, tk.END)
class TestSearcherMethods(TestCase): def setUp(self): self.s = Searcher() def test_init_with_redisinstance(self): r = redis.StrictRedis() s = Searcher(r) s.redis.lpush('key:test', 'test') self.assertEqual(s.redis.lpop('key:test'), 'test') def test_init_with_url(self): self.s.redis.lpush('key:test', 'test') self.assertEqual(self.s.redis.lpop('key:test'), 'test') def test_result(self): self.s.add_document(u'python很美妙', 2) self.assertEqual(self.s.get_result(u'p'), set(['2'])) self.assertEqual(self.s.get_result(u'python'), set(['2'])) self.assertEqual(self.s.get_result(u'美妙'), set(['2'])) def tearDown(self): self.s.redis.flushall()
def main(): ''' main entry of the program ''' is_send_email = input('Do you want to send the results' 'to your email?[Y/n]') is_send_email = True if is_send_email in {'Y', 'y'} else False while True: _help() start_lemma_name = input('Starts at: ').strip().lower() end_lemma_name = input('Ends at: ').strip().lower() # start searching wiki_searcher = Searcher(start_lemma_name, end_lemma_name) wiki_searcher.run_search() # get results show_result(wiki_searcher.get_result()) # send result to my email if is_send_email: send_result() keystroke = input('press any key to continue, q to quick: ') if keystroke == 'q': break