diff --git a/pykat/testing/web/database_indices.py b/pykat/testing/web/database_indices.py index e0320e9ff271bb4b75d22e940013b53d259e291e..3dfcdbee660c631508fb6ac3a04a92d9ac06b034 100644 --- a/pykat/testing/web/database_indices.py +++ b/pykat/testing/web/database_indices.py @@ -43,11 +43,11 @@ class KatTestIndex(HashIndex): def make_key_value(self, data): if data['t'] == 'kattest': - key = str(data['suite']) + str(data['kat']) - return md5(key).digest(), None + key = str(data['suite']) + "_" + str(data['kat']) + return md5(key).hexdigest(), None else: return None def make_key(self, key): - return md5(key).digest() + return md5(key).hexdigest() \ No newline at end of file diff --git a/pykat/testing/web/templates/finesse_test_view.html b/pykat/testing/web/templates/finesse_test_view.html index b7e8fc970b7f7a09efa694d45404dc81eeff57b6..d59784b23419d5c465dd5e044609787078ec1a26 100644 --- a/pykat/testing/web/templates/finesse_test_view.html +++ b/pykat/testing/web/templates/finesse_test_view.html @@ -23,7 +23,11 @@ <li>{{ suite }}</li> <ul> {% for item in kats[suite] %} - <li><span style="display:inline-block;width: 300px">{{item[0]}}</span><a href="/finesse/kat/{{suite}}/{{item[0]}}">View kat</a> <a href="/finesse/view/{{view_test_id}}/diff/{{suite}}/{{item[0]}}">View Diff</a> Max rel diff = {{item[1]}}</li> + <li><span style="display:inline-block;width: 300px"> + {{item[0]}}</span> <a href="/finesse/kat/{{suite}}/{{item[0]}}">Kat</a> + <a href="/finesse/view/{{view_test_id}}/diff/{{suite}}/{{item[0]}}">Diff</a> + <a href="/finesse/kat_history/{{suite}}/{{item[0]}}">History</a> + Max rel diff = {{item[1]}}</li> {% if item[2][0] != "" %} <ul> <li>stdout: <pre>{{item[2][0]}}</pre></li> diff --git a/pykat/testing/web/web_interface.py b/pykat/testing/web/web_interface.py index 1a857139ad1456e07d36bb4b54f31bfaf8bcc546..392fc48a11f29d33fd4f1b9e1377b817904c2758 100644 --- a/pykat/testing/web/web_interface.py +++ b/pykat/testing/web/web_interface.py @@ -131,8 +131,8 @@ class FinesseProcessWatcher(Thread): for suite in self.process_to_watch.run_times.keys(): print suite for kat in self.process_to_watch.run_times[suite].keys(): - key = md5(str(suite) + str(kat)).digest() - out = kat[:-4] + ".out" + key = str(suite) + "_" + str(kat) + out = kat.replace(".kat",".out") if out in self.process_to_watch.output_differences[suite]: max_diff = self.process_to_watch.output_differences[suite][out][2] @@ -149,23 +149,31 @@ class FinesseProcessWatcher(Thread): kat = kat, max_diff = float(max_diff), runexception = runexception)) - + + out = utils.git(["log",str(self.process_to_watch.get_version()),"-1",'--pretty="%ai"'],cwd=os.path.join(app.instance_path,"finesse_src")) + commit_date = out[0].replace("\\","").replace('"','').replace("\n","") + print commit_date + try: doc = db.get('kattest', key, with_doc=True)["doc"] - doc["max_diff"].append(max_diff) + doc["max_diff"].append(float(max_diff)) doc["test_id"].append(self.process_to_watch.test_id) doc["commit"].append(self.process_to_watch.get_version()) + doc["commit_date"].append(str(commit_date)) doc["timing"].append(self.process_to_watch.run_times[suite][kat]) + db.update(doc) except RecordNotFound: - doc = dict(t="kattest",max_diff=[],test_id=[],commit=[],timing=[],suite=suite,kat=kat) + doc = dict(t="kattest",max_diff=[],test_id=[],commit=[],commit_date=[],timing=[],suite=suite,kat=kat) - doc["max_diff"].append(max_diff) + doc["max_diff"].append(float(max_diff)) doc["test_id"].append(self.process_to_watch.test_id) doc["commit"].append(self.process_to_watch.get_version()) + doc["commit_date"].append(str(commit_date)) doc["timing"].append(self.process_to_watch.run_times[suite][kat]) + db.insert(doc) #finally update with details on the kat files ran @@ -548,6 +556,28 @@ def finesse_view_kat(suite, kat): return response +@app.route('/finesse/kat_history/<suite>/<kat>', methods=["GET"]) +def finesse_view_kat_history(suite, kat): + + try: + + doc = db.get("kattest", str(suite)+"_"+str(kat), with_doc=True) + doc = doc["doc"] + + print doc + + data = zip(doc["test_id"],doc["commit"],doc["commit_date"],doc["max_diff"],doc["timing"]) + + response = render_template("finesse_kat_history.html", + kat=kat, + data=data) + except RecordNotFound: + response = make_response("None Found") + response.headers["Content-type"] = "text/plain" + + + return response + @app.route('/finesse/view/<view_test_id>/diff/<suite>/<kat>/', methods=["GET"]) def finesse_view_diff(view_test_id, suite, kat): out = kat[:-4] + ".out" diff --git a/pykat/testing/web_server.py b/pykat/testing/web_server.py index c5f25eb12b1ebdf7ca4f3937e0f7f720b1c26dd3..3399ae2cfd8e99aeb6813aa07d834d093547dd23 100644 --- a/pykat/testing/web_server.py +++ b/pykat/testing/web_server.py @@ -3,7 +3,7 @@ import sys from flask import Flask from optparse import OptionParser -def start(instance_path,port=5000, debug=False, ip="0.0.0.0", git_bin="/usr/bin/git"): +def start(instance_path,port=5000, debug=True, ip="0.0.0.0", git_bin="/usr/bin/git"): os.environ["GIT_BIN"] = git_bin # we import this now so that we can set the GIT_BIN env var