From 2e463b9c0b984d0ff0e1fd30b6e3adb8c21e04e3 Mon Sep 17 00:00:00 2001 From: HandsomeHow <673712786@qq.com> Date: Thu, 13 Dec 2018 14:20:37 +0800 Subject: [PATCH] modify similar result format --- contest/tasks.py | 10 +++++++++- contest/tests.py | 5 +++-- judge/dispatcher.py | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/contest/tasks.py b/contest/tasks.py index e424665a..11d138f0 100644 --- a/contest/tasks.py +++ b/contest/tasks.py @@ -42,7 +42,15 @@ def similar_task(contest_id): if owner[sub1] == owner[sub2]: continue sim = splited_line[3] - data_to_write.append("#".join([problem._id, sub1, owner[sub1], sub2, owner[sub2], sim])) + to_append = { + "problem_id": problem._id, + "submission_a": sub1, + "user_a": owner[sub1], + "submission_b": sub2, + "user_b": owner[sub2], + "similarity": sim + } + data_to_write.append(to_append) f.close() os.remove(output_dir) diff --git a/contest/tests.py b/contest/tests.py index 9c0628fe..6c6f9ae4 100644 --- a/contest/tests.py +++ b/contest/tests.py @@ -63,7 +63,7 @@ class ContestAPITest(APITestCase): def setUp(self): user = self.create_admin() self.contest = Contest.objects.create(created_by=user, **DEFAULT_CONTEST_DATA) - self.contest.similarity_check_result = ["aaa", "bbb", "ccc"] + self.contest.similarity_check_result = [{"user1": "aaa", "user2": "bbb"}, {"user1": "ccc", "user2": "ddd"}] self.contest.save() self.url = self.reverse("contest_api") + "?id=" + str(self.contest.id) @@ -103,7 +103,8 @@ class ContestAPITest(APITestCase): self.create_user("test", "test123") url = self.reverse("contest_get_similar_api") resp = self.client.get(url + "?contest_id=" + str(self.contest.id)) - self.assertEqual(resp.data["data"]["similarity_check_result"], ["aaa", "bbb", "ccc"]) + self.assertEqual(resp.data["data"]["similarity_check_result"][0], {"user1": "aaa", "user2": "bbb"}) + self.assertEqual(resp.data["data"]["similarity_check_result"][1], {"user1": "ccc", "user2": "ddd"}) class ContestAnnouncementAdminAPITest(APITestCase): diff --git a/judge/dispatcher.py b/judge/dispatcher.py index c4480956..5be08531 100644 --- a/judge/dispatcher.py +++ b/judge/dispatcher.py @@ -9,7 +9,7 @@ from django.db.models import F from account.models import User from conf.models import JudgeServer -from contest.models import ContestRuleType, ACMContestRank, OIContestRank, ContestStatus +from contest.models import ContestRuleType, ACMContestRank, OIContestRank from judge.languages import languages, spj_languages from options.options import SysOptions from problem.models import Problem, ProblemRuleType