]> mj.ucw.cz Git - moe.git/blobdiff - t/test.py
Judges can return single-line verdicts on stderr instead of producing a status file
[moe.git] / t / test.py
index e736b32fd454fcfde029cc0301bb54d1a8f679dd..73e3c49cfd68fd5b2b0dc6ea87caf86f30836627 100755 (executable)
--- a/t/test.py
+++ b/t/test.py
@@ -3,27 +3,39 @@
 import sys
 sys.path.append('.')
 
-import moe.meta
+import moe
 import moe.config
+import moe.log
 import moe.eval
 import moe.pipeline
 import moe.batch
 
-overrides = moe.config.parse_overrides(sys.argv)
-
 e = moe.eval.Eval()
-e.builtins.set("HOME", ".")
-e.builtins.set("TASK", "sum")
-e.builtins.set("CONTESTANT", "mj")
-e.init(overrides)
 
-if len(sys.argv) > 1:
-    file = sys.argv[1]
-else:
-    file = None
-moe.batch.locate(e, file)
+try:
+    overrides = moe.config.parse_overrides(sys.argv)
+    e.builtins.set("HOME", ".")
+    e.builtins.set("TASK", "sum")
+    e.builtins.set("CONTESTANT", "mj")
+    e.log.progress("### Evaluating task %s of contestant %s ###\n\n" % (e.cfgs['TASK'], e.cfgs['CONTESTANT']))
+    e.init(overrides)
+except moe.MoeError, err:
+    e.log.shout("FATAL: %s\n" % err)
+    sys.exit(1)
 
-e.run()
+try:
+    if len(sys.argv) > 1:
+       file = sys.argv[1]
+    else:
+       file = None
+    moe.batch.locate(e, file)
+    e.run()
+except moe.MoeError, err:
+    e.log.shout("FATAL: %s\n" % err)
+    sys.exit(1)
+except moe.SolutionError, err:
+    e.stat["error"] = err
+    e.log.shout("%s\n" % err)
 
-print "\nFinal meta file:"
-e.meta.write()
+moe.log.default.progress_file.write("\nFinal status file:\n")
+e.stat.write(file=moe.log.default.progress_file)