def test_merge_text_global(self): res = AbstractJobManager._merge_results({"result": "success", "text": "a"}, {"result": "success", "text": "b"}) assert res["text"] == "b\na"
def test_strange_result_types(self): res = AbstractJobManager._merge_results({"result": "success"}, {"result": "strange"}) assert res["result"] == "error"
def test_merge_text_problem(self): res = AbstractJobManager._merge_results({"result": "success", "problems": {"id": "a"}}, {"result": "success", "problems": {"id": "b"}}) assert res["problems"]["id"] == "b\na"
def test_std_out_err(self): res = AbstractJobManager._merge_results({"result": "success"}, {"result": "success", "stdout": "a", "stderr": "b"}) assert res["stdout"] == "a" assert res["stderr"] == "b"
def test_non_float_grades(self): res = AbstractJobManager._merge_results({"result": "success", "grade": "You shall not grade!"}, None) assert res["grade"] == 0
def test_too_high_grades(self): res = AbstractJobManager._merge_results({"result": "success", "grade": 100000}, None) assert res["grade"] == 200
def test_neg_grades(self): res = AbstractJobManager._merge_results({"result": "success", "grade": -8}, None) assert res["grade"] == 0
def test_norun_merge_list(self): res = AbstractJobManager._merge_results({"result": "success", "problems": {"id1": ["a", "a"]}, "text": ["b", "b"]}, None) assert res["problems"]["id1"] == "a\na" assert res["text"] == "b\nb"