<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="14" time="23.241" timestamp="2026-08-18T20:59:39.989840+00:00" hostname="agent-env-b11a7460-dadf-4672-8b54-9c3cd7b6f18b"><testcase classname="tests.test_iteration3.TestAutoSubmitCron" name="test_no_token_401" time="0.597" /><testcase classname="tests.test_iteration3.TestImageUpload" name="test_upload_and_fetch_png" time="1.811" /><testcase classname="tests.test_iteration3.TestAutoSubmitCron" name="test_wrong_token_401" time="0.419" /><testcase classname="tests.test_iteration3.TestAutoSubmitCron" name="test_valid_token_accepts" time="0.162" /><testcase classname="tests.test_iteration3.TestImageUpload" name="test_upload_invalid_ext_400" time="0.303" /><testcase classname="tests.test_iteration3.TestAutoSubmitCron" name="test_end_to_end_finalizes_expired_attempt" time="19.065" /><testcase classname="tests.test_iteration3.TestImageUpload" name="test_files_no_auth_401" time="0.133" /><testcase classname="tests.test_iteration3.TestImageUpload" name="test_files_unknown_path_404" time="0.149" /><testcase classname="tests.test_iteration3.TestImageUpload" name="test_siswa_cannot_upload" time="0.629" /><testcase classname="tests.test_iteration3.TestExportXlsx" name="test_export_returns_valid_xlsx" time="1.020" /><testcase classname="tests.test_iteration3.TestExportXlsx" name="test_export_404_for_unknown_class" time="0.346" /><testcase classname="tests.test_iteration3.TestImageIntegration" name="test_question_with_image_flows_to_exam_and_result" time="2.318" /><testcase classname="tests.test_iteration3.TestAnalytics" name="test_unauthorized_siswa_forbidden" time="0.346" /><testcase classname="tests.test_iteration3.TestAnalytics" name="test_analytics_response_shape" time="2.204" /></testsuite></testsuites>