A bit of refactoring in ietf/tests.py

- Legacy-Id: 256
This commit is contained in:
Henrik Levkowetz 2007-06-07 20:12:52 +00:00
parent e851dbac27
commit 73bd413e07
2 changed files with 38 additions and 34 deletions

View file

@ -92,48 +92,49 @@ class UrlTestCase(TestCase):
#print "Not all the application URLs has test cases. The missing are: \n %s" % ("\n ".join(list(set(patterns) - set(covered)))) #print "Not all the application URLs has test cases. The missing are: \n %s" % ("\n ".join(list(set(patterns) - set(covered))))
print "Not all the application URLs has test cases." print "Not all the application URLs has test cases."
def testUrls(self): def doUrlsTest(self, lst):
for codes, testurl, goodurl in self.testtuples: response_count = {"Exc": 0, 200: 0, }
if codes[0] in ["skip", "Skip"]: for code, url in lst:
print "Skipping %s" % (testurl) if code in ["Skip", "skip"]:
else: print "Skipping %s" % (url)
elif url:
print "Trying code, url: (<%s>, '%s')" % (code, url)
try: try:
response = self.client.get(testurl) response = self.client.get(url)
code = str(response.status_code) res = response.status_code
print "Got code %s for %s" % (code, testurl) if not res in response_count:
if not code in codes: response_count[res] = 0
self.fail("Unexpected response code (%s) for URL '%s'" % (code, testurl)) response_count[res] += 1
# TODO: Add comparison with goodurl if str(res) in code.split(","):
print "OK %s %s" % (res, url)
else:
print "Fail %s %s" % (res, url)
except: except:
print "Exception for URL '%s'" % testurl if not "Exc" in response_count:
response_count["Exc"] = 0
response_count["Exc"] += 1
print "Exception for URL '%s'" % url
traceback.print_exc() traceback.print_exc()
else:
pass
for code in response_count:
print " %s: %s " % (res, response_count[code])
for code in response_count:
if str(code) != "200":
self.assertEqual(response_count[code], 0)
def testUrlsList(self):
lst = [(tuple[0], tuple[1]) for tuple in self.testtuples]
self.doUrlsTest(lst)
def testUrlsFallback(self): def testUrlsFallback(self):
patterns = get_patterns(ietf.urls) patterns = get_patterns(ietf.urls)
response_count = {} response_count = {"Exc": 0, "200": 0, }
lst = []
for pattern in patterns: for pattern in patterns:
if pattern.startswith("^") and pattern.endswith("$"): if pattern.startswith("^") and pattern.endswith("$"):
url = "/"+pattern[1:-1] url = "/"+pattern[1:-1]
# if there is no variable parts in the url, test it # if there is no variable parts in the url, test it
if re.search("^[-a-z0-9./_]*$", url) and not url in self.testurls and not url.startswith("/admin/"): if re.search("^[-a-z0-9./_]*$", url) and not url in self.testurls and not url.startswith("/admin/"):
try: lst.append(("200", url))
response = self.client.get(url) self.doUrlsTest(lst)
if not response.status_code in response_count:
response_count[response.status_code] = 0
response_count[response.status_code] += 1
if response.status_code != 200:
print "Bad code %s for %s" % (response.status_code, url)
except:
if not "Exc" in response_count:
response_count["Exc"] = 0
response_count["Exc"] += 1
print "Exception for URL '%s'" % url
traceback.print_exc()
else:
print "Skipping %s" % (url)
print "testUrlsFallback() response count:\n code count"
for code in response_count:
print " %s: %s " % (code, response_count[code])
for code in response_count:
if str(code) != "200":
self.assertEqual(response_count[code], 0)

View file

@ -6,6 +6,9 @@
200,404 /idtracker/status/ 200,404 /idtracker/status/
200,404 /idtracker/last_call/ 200,404 /idtracker/last_call/
skip /my/ skip /my/
skip /idindex/
skip /idindex/showdocs/all/date/
skip /idindex/showdocs/all/name/
200,404 /liaisons/ 200,404 /liaisons/
200,404 /liaisons/managers/ 200,404 /liaisons/managers/
200,404 /mailinglists/area_lists/ 200,404 /mailinglists/area_lists/