def make_zeus_testrun_report(env, **kwargs): """Builds entities for Zeus-testrun reports in a database. Used ``environ`` keys: * ``tests`` * ``test_results`` * ``status`` * ``score`` * ``compilation_result`` * ``compilation_message`` * ``submission_id`` Produced ``environ`` keys: * ``report_id``: id of the produced :class:`~oioioi.contests.models.SubmissionReport` """ _submission, submission_report = _make_base_report(env, 'TESTRUN') if env['compilation_result'] != 'OK': return env test_name = env['tests'].keys()[0] test = env['tests'][test_name] test_result = env['test_results'][test_name] zeus_result = test_result['zeus_test_result'] comment = test_result.get('result_string', '') if comment.lower() == 'ok': # Annoying comment = '' testrun_report = ZeusTestRunReport(submission_report=submission_report) testrun_report.status = env['status'] testrun_report.comment = \ slice_str(comment, ZeusTestRunReport._meta .get_field('comment').max_length) testrun_report.time_used = test_result['time_used'] testrun_report.test_time_limit = test.get('exec_time_limit') testrun_report.full_out_size = zeus_result['stdout_size'] # The server to download from: submission.problem_instance.problem testrun_report.full_out_handle = zeus_result['stdout_uid'] # Output truncated to first 10kB testrun_report.output_file.save('out', ContentFile(zeus_result['stdout'])) testrun_report.save() return env
def make_zeus_testrun_report(env, **kwargs): """Builds entities for Zeus-testrun reports in a database. Used ``environ`` keys: * ``tests`` * ``test_results`` * ``status`` * ``score`` * ``compilation_result`` * ``compilation_message`` * ``submission_id`` Produced ``environ`` keys: * ``report_id``: id of the produced :class:`~oioioi.contests.models.SubmissionReport` """ _submission, submission_report = _make_base_report(env, "TESTRUN") if env["compilation_result"] != "OK": return env test_name = env["tests"].keys()[0] test = env["tests"][test_name] test_result = env["test_results"][test_name] zeus_result = test_result["zeus_test_result"] comment = test_result.get("result_string", "") if comment.lower() == "ok": # Annoying comment = "" testrun_report = ZeusTestRunReport(submission_report=submission_report) testrun_report.status = env["status"] testrun_report.comment = Truncator(comment).chars(ZeusTestRunReport._meta.get_field("comment").max_length) testrun_report.time_used = test_result["time_used"] testrun_report.test_time_limit = test.get("exec_time_limit") testrun_report.full_out_size = zeus_result["stdout_size"] # The server to download from: submission.problem_instance.problem testrun_report.full_out_handle = zeus_result["stdout_uid"] # Output truncated to first 10kB testrun_report.output_file.save("out", ContentFile(zeus_result["stdout"])) testrun_report.save() return env
def make_report(env, **kwargs): """Builds entities for testrun reports in a database. Used ``environ`` keys: * ``tests`` * ``test_results`` * ``status`` * ``score`` * ``compilation_result`` * ``compilation_message`` Produced ``environ`` keys: * ``report_id``: id of the produced :class:`~oioioi.contests.models.SubmissionReport` """ _submission, submission_report = _make_base_report(env, 'TESTRUN') if env['compilation_result'] != 'OK': return env test = env['tests']['test'] test_result = env['test_results']['test'] comment = test_result.get('result_string', '') if comment.lower() == 'ok': # Annoying comment = '' testrun_report = TestRunReport(submission_report=submission_report) testrun_report.status = env['status'] testrun_report.comment = \ slice_str(comment, TestRunReport._meta .get_field('comment').max_length) testrun_report.time_used = test_result['time_used'] testrun_report.test_time_limit = test.get('exec_time_limit') testrun_report.output_file = filetracker_to_django_file( test_result['out_file']) testrun_report.save() return env
def make_report(env, **kwargs): """Builds entities for testrun reports in a database. Used ``environ`` keys: * ``tests`` * ``test_results`` * ``status`` * ``score`` * ``compilation_result`` * ``compilation_message`` Produced ``environ`` keys: * ``report_id``: id of the produced :class:`~oioioi.contests.models.SubmissionReport` """ submission, submission_report = _make_base_report(env, 'TESTRUN') if env['compilation_result'] != 'OK': return env test = env['tests']['test'] test_result = env['test_results']['test'] comment = test_result.get('result_string', '') if comment.lower() == 'ok': # Annoying comment = '' testrun_report = TestRunReport(submission_report=submission_report) testrun_report.status = env['status'] testrun_report.comment = \ slice_str(comment, TestRunReport._meta .get_field('comment').max_length) testrun_report.time_used = test_result['time_used'] testrun_report.test_time_limit = test.get('exec_time_limit') testrun_report.output_file = filetracker_to_django_file( test_result['out_file']) testrun_report.save() return env