class SearchTerm: def __init__(self, filename): words = filter(bool, open(filename, 'r').read().split('\n')) # Record and store progress progress_filename = filename + '.progress' self.progress = Progress(current_file = progress_filename) # Load progress if self.progress.current: self.word_list = words[self.progress.current[0]:] else: self.word_list = words self.counter = 0 def current(self): """ the index of word in word list """ return self.progress.current def get_counter(self): """ times next() has been called, ie. progress of current session. """ return self.counter def next(self): self.progress.next([0], [len(self.word_list)]) self.progress.save() self.counter += 1 def get_word_list(self): return self.word_list def expand_word_list(self, expand_type): if expand_type == "suggest": self.google_suggest() elif expand_type == "search": None else: None def collect(self): None def google_suggest(self): None
def test_Progress(): # multiple values progress = Progress(current_file='../../data/trend/no_file') assert_equal(progress.next([8,0,0,0,0], [10,9,9,9,9]), [9,0,0,0,0]) assert_equal(progress.next([8,0,0,0,0], [10,9,9,9,9]), [8,1,0,0,0]) assert_equal(progress.next([8,0,0,0,0], [10,9,9,9,9]), [9,1,0,0,0]) # single value progress = Progress(current_file='../../data/trend/no_file', start=[0]) assert_equal(progress.next([0], [3]), [1]) assert_equal(progress.next([0], [3]), [2]) assert_equal(progress.next([0], [3]), None) # start from middle progress = Progress(current_file='../../data/trend/no_file', start=[3]) assert_equal(progress.next([0], [6]), [4]) assert_equal(progress.next([0], [6]), [5]) assert_equal(progress.next([0], [6]), None)