From 931b6972673c1e07780708ce180fbf7961b6b24c Mon Sep 17 00:00:00 2001 From: hohoTT <609029365@qq.com> Date: Tue, 11 Aug 2015 18:03:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E5=8F=91=E5=B8=83=E3=80=81?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=A2=98=E7=9B=AE=E6=B5=8B=E8=AF=95=E4=B8=AD?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=86=97=E4=BD=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- group/migrations/0002_auto_20150811_1649.py | 28 +++++ problem/tests.py | 107 ++++++++------------ 2 files changed, 71 insertions(+), 64 deletions(-) create mode 100644 group/migrations/0002_auto_20150811_1649.py diff --git a/group/migrations/0002_auto_20150811_1649.py b/group/migrations/0002_auto_20150811_1649.py new file mode 100644 index 0000000..2b6a65e --- /dev/null +++ b/group/migrations/0002_auto_20150811_1649.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('group', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='group', + name='name', + field=models.CharField(unique=True, max_length=30), + ), + migrations.AlterField( + model_name='joingrouprequest', + name='group', + field=models.ForeignKey(to='group.Group'), + ), + migrations.AlterUniqueTogether( + name='usergrouprelation', + unique_together=set([('group', 'user')]), + ), + ] diff --git a/problem/tests.py b/problem/tests.py index 2ee84b2..708d7f2 100644 --- a/problem/tests.py +++ b/problem/tests.py @@ -1,4 +1,6 @@ # coding=utf-8 +import json + from django.test import TestCase from django.core.urlresolvers import reverse @@ -13,23 +15,48 @@ class ProblemPageTest(TestCase): class ProblemAdminTest(APITestCase): + def _create_data(self, problem_id, visible, tags): + data = {"id": problem_id, + "title": "title1", + "description": "des1", + "test_case_id": "1", + "source": "source1", + "samples": [{"input": "1 1", "output": "2"}], + "time_limit": "100", + "memory_limit": "1000", + "difficulty": "1", + "hint": "hint1", + "visible": visible, + "tags": tags} + return data + def setUp(self): self.client = APIClient() self.url = reverse("problem_admin_api") - user = User.objects.create(username="test", admin_type=SUPER_ADMIN) - user.set_password("testaa") - user.save() + self.user = User.objects.create(username="test", admin_type=SUPER_ADMIN) + self.user.set_password("testaa") + self.user.save() + self.client.login(username="test", password="testaa") + ProblemTag.objects.create(name="tag1") + ProblemTag.objects.create(name="tag2") + self.problem = Problem.objects.create(title="title1", + description="des1", + test_case_id="1", + source="source1", + samples=[{"input": "1 1", "output": "2"}], + time_limit=100, + memory_limit=1000, + difficulty=1, + hint="hint1", + created_by=User.objects.get(username="test")) # 以下是发布题目的测试 def test_invalid_format(self): - self.client.login(username="test", password="testaa") data = {"title": "test1"} response = self.client.post(self.url, data=data) self.assertEqual(response.data["code"], 1) - def test_success_problem(self): - self.client.login(username="test", password="testaa") - ProblemTag.objects.create(name="tag1") + def test_release_problem_successfully(self): data = {"title": "title1", "description": "des1", "test_case_id": "1", @@ -40,76 +67,28 @@ class ProblemAdminTest(APITestCase): "difficulty": "1", "hint": "hint1", "tags": [1]} - response = self.client.post(self.url, data=data) + response = self.client.post(self.url, data=json.dumps(data), content_type="application/json") self.assertEqual(response.data["code"], 0) # 以下是编辑题目的测试 - def test_put_invalid_data(self): - self.client.login(username="test", password="testaa") + def test_invalid_data(self): data = {"title": "test0"} response = self.client.put(self.url, data=data) self.assertEqual(response.data["code"], 1) def test_problem_does_not_exist(self): - self.client.login(username="test", password="testaa") - ProblemTag.objects.create(name="tag1") tags = ProblemTag.objects.filter(id__in=[1]) - problem = Problem.objects.create(title="title1", - description="des1", - test_case_id="1", - source="source1", - samples=[{"input": "1 1", "output": "2"}], - time_limit=100, - memory_limit=1000, - difficulty=1, - hint="hint1", - created_by=User.objects.get(username="test")) - problem.tags.add(*tags) - data = {"id": 2, - "title": "title1", - "description": "des1", - "test_case_id": "1", - "source": "source1", - "samples": [{"input": "1 1", "output": "2"}], - "time_limit": "100", - "memory_limit": "1000", - "difficulty": "1", - "hint": "hint1", - "tags": [1]} - response = self.client.put(self.url, data=data) + self.problem.tags.add(*tags) + data = self._create_data(2, False, [1]) + response = self.client.put(self.url, data=json.dumps(data), content_type="application/json") self.assertEqual(response.data, {"code": 1, "data": u"该题目不存在!"}) - def test_success_edit_problem(self): - self.client.login(username="test", password="testaa") - self.client.login(username="test", password="testaa") - ProblemTag.objects.create(name="tag1") - ProblemTag.objects.create(name="tag2") + def test_edit_problem_successfully(self): tags = ProblemTag.objects.filter(id__in=[1]) - problem0 = Problem.objects.create(title="title1", - description="des1", - test_case_id="1", - source="source1", - samples=[{"input": "1 1", "output": "2"}], - time_limit=100, - memory_limit=1000, - difficulty=1, - hint="hint1", - created_by=User.objects.get(username="test")) - problem0.tags.add(*tags) - data = {"id": 1, - "title": "title1", - "description": "des1", - "test_case_id": "1", - "source": "source1", - "samples": [{"input": "1 1", "output": "2"}], - "time_limit": "100", - "memory_limit": "1000", - "difficulty": "1", - "hint": "hint1", - "visible": True, - "tags": [1, 2]} + self.problem.tags.add(*tags) + data = self._create_data(1, True, [1, 2]) problem = Problem.objects.get(id=data["id"]) problem.tags.remove(*problem.tags.all()) problem.tags.add(*ProblemTag.objects.filter(id__in=data["tags"])) - response = self.client.put(self.url, data=data) + response = self.client.put(self.url, data=json.dumps(data), content_type="application/json") self.assertEqual(response.data["code"], 0)