增加测试用例版本号,用于judger重新编译spj程序

This commit is contained in:
virusdefender
2016-04-06 13:49:37 +08:00
parent 7414c80ee6
commit 3d396cc8e4
5 changed files with 61 additions and 3 deletions

View File

@@ -66,6 +66,11 @@ class ProblemTagAdminAPIView(APIView):
class ProblemAdminAPIView(APIView):
def _spj_version(self, code):
if code is None:
return None
return hashlib.md5(code.encode("utf-8")).hexdigest()
@super_admin_required
def post(self, request):
"""
@@ -94,6 +99,7 @@ class ProblemAdminAPIView(APIView):
spj=data["spj"],
spj_language=data["spj_language"],
spj_code=data["spj_code"],
spj_version=self._spj_version(data["spj_code"]),
difficulty=data["difficulty"],
created_by=request.user,
hint=data["hint"],
@@ -120,6 +126,7 @@ class ProblemAdminAPIView(APIView):
if serializer.is_valid():
data = serializer.data
problem = Problem.objects.get(id=data["id"])
problem.title = data["title"]
problem.description = data["description"]
problem.input_description = data["input_description"]
@@ -131,6 +138,7 @@ class ProblemAdminAPIView(APIView):
problem.spj = data["spj"]
problem.spj_language = data["spj_language"]
problem.spj_code = data["spj_code"]
problem.spj_version = self._spj_version(data["spj_code"])
problem.difficulty = data["difficulty"]
problem.samples = json.dumps(data["samples"])
problem.hint = data["hint"]
@@ -146,7 +154,9 @@ class ProblemAdminAPIView(APIView):
except ProblemTag.DoesNotExist:
tag = ProblemTag.objects.create(name=tag)
problem.tags.add(tag)
problem.save()
return success_response(ProblemSerializer(problem).data)
else:
return serializer_invalid_response(serializer)
@@ -237,8 +247,6 @@ class TestCaseUploadAPIView(APIView):
# 否则就应该是spj的测试用例
spj = True
print name_list, spj
if not spj:
if len(name_list) % 2 == 1:
return error_response(u"测试用例文件格式错误,文件数目为奇数")