diff --git a/ietf/tests.py b/ietf/tests.py index ae905bd88..df669f4b6 100644 --- a/ietf/tests.py +++ b/ietf/tests.py @@ -21,14 +21,17 @@ def run_tests(module_list, verbosity=1, extra_tests=[]): # during the search for a 'tests' module ... return django.test.simple.run_tests(module_list, verbosity, extra_tests) -def reduce(html): +def reduce(html, pre=False, fill=True): html = re.sub(" :", ":", html) if html.count("
  • ") > 5*html.count("
  • "): html = html.replace("
  • ", "
  • ") - text = html2text(html) + text = html2text(html, pre=pre, fill=fill) text = text.replace('."', '".') text = text.replace(',"', '",') - text = [ line.strip() for line in text.split("\n") ] + if pre: + text = text.split("\n") + else: + text = [ line.strip() for line in text.split("\n") ] return text def get_patterns(module): @@ -139,7 +142,11 @@ class UrlTestCase(TestCase): #self.assertEqual(set(patterns), set(covered), "Not all the #application URLs has test cases. The missing are: %s" % (list(set(patterns) - set(covered)))) if not set(self.patterns) == set(covered): - print "Not all the application URLs has test cases. The missing are: \n %s" % ("\n ".join(list(set(self.patterns) - set(covered)))) + missing = list(set(self.patterns) - set(covered)) + print "Not all the application URLs has test cases, there are %d missing." % (len(missing)) + print "The ones missing are: " + for pattern in missing: + print "Miss", pattern else: print "All the application URL patterns seem to have test cases." #print "Not all the application URLs has test cases." @@ -175,18 +182,19 @@ class UrlTestCase(TestCase): try: mfile.close() if goodhtml and response.content: - testtext = reduce(response.content) - goodtext = reduce(goodhtml) if "sort" in codes: - try: - def sorted(l): - l.sort() - return l - testtext = sorted(testtext) - goodtext = sorted(goodtext) - except: - print "Exception occurred when trying to do sorted comparison" - traceback.print_exc() + def sorted(l): + l.sort() + return l + testtext = sorted(reduce(response.content, fill=False)) + while testtext and not testtext[0]: + del testtext[0] + goodtext = sorted(reduce(goodhtml, fill=False)) + while goodtext and not goodtext[0]: + del goodtext[0] + else: + testtext = reduce(response.content) + goodtext = reduce(goodhtml) if testtext == goodtext: print "OK cmp %s" % (url) else: