Example #1
0
    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()
Example #3
0
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