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,37 +92,23 @@ 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."
def testUrls(self):
for codes, testurl, goodurl in self.testtuples:
if codes[0] in ["skip", "Skip"]:
print "Skipping %s" % (testurl)
else:
try:
response = self.client.get(testurl)
code = str(response.status_code)
print "Got code %s for %s" % (code, testurl)
if not code in codes:
self.fail("Unexpected response code (%s) for URL '%s'" % (code, testurl))
# TODO: Add comparison with goodurl
except:
print "Exception for URL '%s'" % testurl
traceback.print_exc()
def testUrlsFallback(self):
patterns = get_patterns(ietf.urls)
response_count = {}
for pattern in patterns:
if pattern.startswith("^") and pattern.endswith("$"):
url = "/"+pattern[1:-1]
# 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/"):
def doUrlsTest(self, lst):
response_count = {"Exc": 0, 200: 0, }
for code, url in lst:
if code in ["Skip", "skip"]:
print "Skipping %s" % (url)
elif url:
print "Trying code, url: (<%s>, '%s')" % (code, url)
try:
response = self.client.get(url)
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)
res = response.status_code
if not res in response_count:
response_count[res] = 0
response_count[res] += 1
if str(res) in code.split(","):
print "OK %s %s" % (res, url)
else:
print "Fail %s %s" % (res, url)
except:
if not "Exc" in response_count:
response_count["Exc"] = 0
@ -130,10 +116,25 @@ class UrlTestCase(TestCase):
print "Exception for URL '%s'" % url
traceback.print_exc()
else:
print "Skipping %s" % (url)
print "testUrlsFallback() response count:\n code count"
pass
for code in response_count:
print " %s: %s " % (code, response_count[code])
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):
patterns = get_patterns(ietf.urls)
response_count = {"Exc": 0, "200": 0, }
lst = []
for pattern in patterns:
if pattern.startswith("^") and pattern.endswith("$"):
url = "/"+pattern[1:-1]
# 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/"):
lst.append(("200", url))
self.doUrlsTest(lst)

View file

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