diff --git a/server/datedetector.py b/server/datedetector.py index 7301ec91..5b1f3c6c 100644 --- a/server/datedetector.py +++ b/server/datedetector.py @@ -194,7 +194,8 @@ class DateDetector: self.__lock.acquire() try: logSys.debug("Sorting the template list") - self.__templates.sort(lambda x, y: cmp(x.getHits(), y.getHits())) - self.__templates.reverse() + self.__templates.sort(lambda x, y: cmp(x.getHits(), y.getHits()), reverse=True) + t = self.__templates[0] + logSys.debug("Winning template: %s with %d hits" % (t.getName(), t.getHits())) finally: self.__lock.release() diff --git a/testcases/datedetectortestcase.py b/testcases/datedetectortestcase.py index 1f73cd1e..d6946144 100644 --- a/testcases/datedetectortestcase.py +++ b/testcases/datedetectortestcase.py @@ -78,6 +78,14 @@ class DateDetectorTest(unittest.TestCase): self.assertEqual(self.__datedetector.getTime(log)[:6], date[:6]) self.assertEqual(self.__datedetector.getUnixTime(log), dateUnix) + def testStableSortTemplate(self): + old_names = [x.getName() for x in self.__datedetector.getTemplates()] + self.__datedetector.sortTemplate() + # If there were no hits -- sorting should not change the order + for old_name, n in zip(old_names, self.__datedetector.getTemplates()): + self.assertEqual(old_name, n.getName()) # "Sort must be stable" + + # def testDefaultTempate(self): # self.__datedetector.setDefaultRegex("^\S{3}\s{1,2}\d{1,2} \d{2}:\d{2}:\d{2}") # self.__datedetector.setDefaultPattern("%b %d %H:%M:%S")