Accept both testurl.list and testurls.list as test url list file names. Output status for good compares, too.
- Legacy-Id: 303
This commit is contained in:
parent
9b78963547
commit
b42e0728c8
|
@ -51,6 +51,25 @@ def get_patterns(module):
|
||||||
all.append(item.regex.pattern + ".*" + sub)
|
all.append(item.regex.pattern + ".*" + sub)
|
||||||
return all
|
return all
|
||||||
|
|
||||||
|
def read_testurls(filename):
|
||||||
|
tuples = []
|
||||||
|
file = open(filename)
|
||||||
|
for line in file:
|
||||||
|
line = line.strip()
|
||||||
|
if line and not line.startswith('#'):
|
||||||
|
line = line.split("#", 1)[0]
|
||||||
|
urlspec = line.split()
|
||||||
|
if len(urlspec) == 2:
|
||||||
|
codes, testurl = urlspec
|
||||||
|
goodurl = None
|
||||||
|
elif len(urlspec) == 3:
|
||||||
|
codes, testurl, goodurl = urlspec
|
||||||
|
else:
|
||||||
|
raise ValueError("Expected 'HTTP_CODE TESTURL [GOODURL]' in %s line, found '%s'." % (filename, line))
|
||||||
|
codes = codes.split(",")
|
||||||
|
tuples += [ (codes, testurl, goodurl) ]
|
||||||
|
return tuples
|
||||||
|
|
||||||
class UrlTestCase(TestCase):
|
class UrlTestCase(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
from django.test.client import Client
|
from django.test.client import Client
|
||||||
|
@ -61,24 +80,10 @@ class UrlTestCase(TestCase):
|
||||||
self.testurls = []
|
self.testurls = []
|
||||||
for root, dirs, files in os.walk(settings.BASE_DIR):
|
for root, dirs, files in os.walk(settings.BASE_DIR):
|
||||||
if "testurl.list" in files:
|
if "testurl.list" in files:
|
||||||
filename = root+"/testurl.list" # yes, this is non-portable
|
self.testtuples += read_testurls(root+"/testurl.list")
|
||||||
file = open(filename)
|
if "testurls.list" in files:
|
||||||
for line in file:
|
self.testtuples += read_testurls(root+"/testurls.list")
|
||||||
line = line.strip()
|
self.testurls = [ tuple[0] for tuple in self.testtuples ]
|
||||||
if line and not line.startswith('#'):
|
|
||||||
line = line.split("#", 1)[0]
|
|
||||||
urlspec = line.split()
|
|
||||||
if len(urlspec) == 2:
|
|
||||||
codes, testurl = urlspec
|
|
||||||
goodurl = None
|
|
||||||
elif len(urlspec) == 3:
|
|
||||||
codes, testurl, goodurl = urlspec
|
|
||||||
else:
|
|
||||||
raise ValueError("Expected 'HTTP_CODE TESTURL [GOODURL]' in %s line, found '%s'." % (filename, line))
|
|
||||||
codes = codes.split(",")
|
|
||||||
self.testtuples += [ (codes, testurl, goodurl) ]
|
|
||||||
self.testurls += [ testurl ]
|
|
||||||
#print "(%s, %s, %s)" % (code, testurl, goodurl)
|
|
||||||
# Use the default database for the url tests, instead of the test database
|
# Use the default database for the url tests, instead of the test database
|
||||||
self.testdb = settings.DATABASE_NAME
|
self.testdb = settings.DATABASE_NAME
|
||||||
connection.close()
|
connection.close()
|
||||||
|
@ -136,7 +141,9 @@ class UrlTestCase(TestCase):
|
||||||
if goodhtml and response.content:
|
if goodhtml and response.content:
|
||||||
testtext = reduce(response.content)
|
testtext = reduce(response.content)
|
||||||
goodtext = reduce(goodhtml)
|
goodtext = reduce(goodhtml)
|
||||||
if not testtext == goodtext:
|
if testtext == goodtext:
|
||||||
|
print "OK cmp %s" % (url)
|
||||||
|
else:
|
||||||
diff = "\n".join(unified_diff(goodtext, testtext, url, master, lineterm=False))
|
diff = "\n".join(unified_diff(goodtext, testtext, url, master, lineterm=False))
|
||||||
dfile = "%s/../test/diff/%s" % (settings.BASE_DIR, url.replace("/", "_"))
|
dfile = "%s/../test/diff/%s" % (settings.BASE_DIR, url.replace("/", "_"))
|
||||||
if os.path.exists(dfile):
|
if os.path.exists(dfile):
|
||||||
|
|
|
@ -27,7 +27,10 @@ def para(words, pre):
|
||||||
text = text.replace(entity, char)
|
text = text.replace(entity, char)
|
||||||
if not pre:
|
if not pre:
|
||||||
text = re.sub("[\r\n\t ]+", " ", text)
|
text = re.sub("[\r\n\t ]+", " ", text)
|
||||||
text = textwrap.fill(text)
|
try: # On OS-X / Python 2.5 textwrap can throw a runtime error
|
||||||
|
text = textwrap.fill(text)
|
||||||
|
except RuntimeError:
|
||||||
|
pass
|
||||||
return text
|
return text
|
||||||
|
|
||||||
def render(node, encoding='latin-1', pre=False):
|
def render(node, encoding='latin-1', pre=False):
|
||||||
|
|
Loading…
Reference in a new issue