OpenLayers OpenLayers
Show
Ignore:
Timestamp:
12/18/07 01:03:30 (1 year ago)
Author:
crschmidt
Message:

store pickled hash of per-browser results.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • project/website/test/results.cgi

    r5450 r5483  
    55import time 
    66import smtplib 
     7import pickle 
    78 
    89EMAIL_TO = "autotest@openlayers.org" 
    910LOCAL_DIR = "/www/openlayers/docs/test/" 
    1011 
     12 
     13 
     14data = {} 
     15 
     16try: 
     17    f = open(os.path.join(LOCAL_DIR, "test_results.pickle"), "r") 
     18    data = pickle.load(f)  
     19except Exception, E: 
     20    pass 
     21 
     22print "Content-Type: text/html" 
     23print  
    1124fs = cgi.FieldStorage() 
    1225if os.environ['REQUEST_METHOD'] == "POST": 
    13     f = open(os.path.join(LOCAL_DIR, "test.log"), "a") 
    14     f.write("User-Agent: %s\nTimestamp: %s\nResults:%s\n" % (os.environ['HTTP_USER_AGENT'], time.time(), fs['results'].value)) 
     26    useragent = os.environ['HTTP_USER_AGENT'] 
     27    status_changed = True  
     28    if not data.has_key(useragent): 
     29        data[useragent] = {} 
     30    else:     
     31        old_data = data[useragent]  
     32        status_changed = (old_data['results'] != fs['results'].value) 
     33    data[useragent] = { 
     34      'time':time.time(), 
     35      'results':fs['results'].value, 
     36      'ip': os.environ['REMOTE_ADDR'], 
     37      'url':'' 
     38    }   
    1539    if fs.has_key("test_text"): 
    16         # FailureL  
     40        # Failure  
    1741        filename = "failure.%s.html"%time.time() 
    18         data = open(os.path.join(LOCAL_DIR, filename), "w") 
    19         data.write(fs['test_text'].value) 
    20         data.close() 
    21         f.write("http://openlayers.org/test/%s\n" % filename) 
    22         message = [] 
    23         message.append("From: crschmidt@metacarta.com\r\nTo: %s\r\nSubject: OpenLayers Test Failure: %s\r\n" % (EMAIL_TO, fs['results'].value)) 
    24         message.append("Results: %s" % fs['results'].value) 
    25         message.append("URL: http://openlayers.org/test/%s" % filename) 
    26         message.append("User-Agent: %s" % os.environ['HTTP_USER_AGENT']) 
    27         s = smtplib.SMTP("smtp.metacarta.com") 
    28         s.sendmail("crschmidt@metacarta.com", EMAIL_TO, "\n".join(message)) 
    29     f.write("\n")     
    30     f.close() 
    31 f = open(os.path.join(LOCAL_DIR, "test.log"), "r") 
    32 print "Content-Type: text/plain" 
    33 print  
    34 print f.read() 
    35 f.close() 
     42        error_log = open(os.path.join(LOCAL_DIR, filename), "w") 
     43        error_log.write(fs['test_text'].value) 
     44        error_log.close() 
     45        data[useragent]['url'] = "http://openlayers.org/test/%s" % filename 
     46        if status_changed: 
     47            message = [] 
     48            message.append("From: crschmidt@metacarta.com\r\nTo: %s\r\nSubject: OpenLayers Test Failure: %s\r\n" % (EMAIL_TO, fs['results'].value)) 
     49            message.append("Results: %s" % fs['results'].value) 
     50            message.append("URL: http://openlayers.org/test/%s" % filename) 
     51            message.append("User-Agent: %s" % os.environ['HTTP_USER_AGENT']) 
     52            s = smtplib.SMTP("smtp.metacarta.com") 
     53            s.sendmail("crschmidt@metacarta.com", EMAIL_TO, "\n".join(message)) 
     54    pickle.dump(data, open(os.path.join(LOCAL_DIR, "test_results.pickle"), "w")) 
     55 
     56print """<table> 
     57<tr> 
     58 <td>User-Agent</td> 
     59 <td>IP</td> 
     60 <td>Timestamp</td> 
     61 <td>Results</td> 
     62 <td>URL</td> 
     63</tr>""" 
     64for key in data.keys(): 
     65    print """<tr> 
     66 <td>%s</td> 
     67 <td>%s</td> 
     68 <td>%s</td> 
     69 <td>%s</td> 
     70""" % (key, data[key]['ip'], data[key]['time'], data[key]['results']) 
     71    if data[key]['url']: 
     72        print "<td><a href='%s'>Failure Report</a></td>" % data[key]['url'] 
     73     
     74    print "</tr>"     
     75print """</table>"""