datatracker/test/check_url
2007-06-16 11:17:31 +00:00

54 lines
1.7 KiB
Python
Executable file

#!/usr/bin/env python
import sys
import os
# Warning: The following code assumes that this file is located in the svn
# checkout directory, and hasn't been moved:
ietfpath = os.path.abspath(__file__.rsplit("/", 1)[0] + "/..")
sys.path.append(ietfpath)
os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings"
from ietf.utils.soup2text import soup2text as html2text
from difflib import unified_diff
import urllib2 as urllib
from ietf.tests import read_testurls
django_server = os.environ.get("DJANGO_SERVER", "http://merlot.tools.ietf.org:31415")
django_server.rstrip("/")
testtuples = []
for root, dirs, files in os.walk(ietfpath):
if "testurl.list" in files:
testtuples += read_testurls(root+"/testurl.list")
if "testurls.list" in files:
testtuples += read_testurls(root+"/testurls.list")
testurls = dict([ (tuple[1], tuple) for tuple in testtuples ])
def fetch(url):
file = urllib.urlopen(url)
html = file.read()
file.close()
return html
for url in sys.argv[1:]:
tuple = testurls[url]
if len(tuple) > 2:
url1 = tuple[2]
url2 = django_server + tuple[1]
print "Fetching %s ..." % url1
text1 = html2text(fetch(url1), fill=False)
text1 = text1.replace('."', '".').replace(',"', '",')
list1 = text1.split("\n")
print "Fetching %s ..." % url2
text2 = html2text(fetch(url2), fill=False)
text2 = text2.replace('."', '".').replace(',"', '",')
list2 = text2.split("\n")
diff = "\n".join(unified_diff(list1, list2, url1, url2, "", "", 0, lineterm=""))
if diff:
print diff
else:
print "\nNo difference found"