增加了用visible搜索公告的功能,并增加了相应的测试

This commit is contained in:
hohoTT 2015-08-07 20:25:06 +08:00
parent 1675eed67d
commit d64b99eed3
3 changed files with 26 additions and 2 deletions

View File

@ -62,6 +62,25 @@ class AnnouncementAPITest(APITestCase):
def setUp(self):
self.client = APIClient()
self.url = reverse("announcement_list_api")
user = User.objects.create(username="test")
user.set_password("test")
user.save()
def test_success_get_data(self):
self.assertEqual(self.client.get(self.url).data["code"], 0)
def test_keyword_announcement(self):
Announcement.objects.create(title="aa",
content="AA",
created_by=User.objects.get(username="test"),
visible=True)
Announcement.objects.create(title="bb",
content="BB",
created_by=User.objects.get(username="test"),
visible=False)
response = self.client.get(self.url + "?visible=true")
self.assertEqual(response.data["code"], 0)
for item in response.data["data"]:
self.assertEqual(item["visible"], True)

View File

@ -57,5 +57,8 @@ class AnnouncementAPIView(APIView):
---
response_serializer: AnnouncementSerializer
"""
announcement = Announcement.objects.all().order_by("last_update_time")
announcement = Announcement.objects.all().order_by("-last_update_time")
visible = request.GET.get("visible", None)
if visible:
announcement = announcement.filter(visible=(visible == "true"))
return paginate(request, announcement, AnnouncementSerializer)

View File

@ -4,7 +4,7 @@ from django.contrib import admin
from django.views.generic import TemplateView
from account.views import UserLoginAPIView, UsernameCheckAPIView, UserRegisterAPIView, UserChangePasswordAPIView, \
EmailCheckAPIView
EmailCheckAPIView, UserAPIView, UserAdminAPIView
from announcement.views import AnnouncementAPIView, AnnouncementAdminAPIView
from admin.views import AdminTemplateView
@ -21,9 +21,11 @@ urlpatterns = [
url(r'^api/username_check/$', UsernameCheckAPIView.as_view(), name="username_check_api"),
url(r'^api/email_check/$', EmailCheckAPIView.as_view(), name="email_check_api"),
url(r'^api/admin/announcement/$', AnnouncementAdminAPIView.as_view(), name="announcement_admin_api"),
url(r'^api/admin/user/$', UserAdminAPIView.as_view(), name="user_admin_api"),
url(r'^problem/(?P<problem_id>\d+)/$', "problem.views.problem_page", name="problem_page"),
url(r'^api/announcements/$', AnnouncementAPIView.as_view(), name="announcement_list_api"),
url(r'^api/users/$', UserAPIView.as_view(), name="user_list_api"),
url(r'^admin/contest/$', TemplateView.as_view(template_name="admin/contest/add_contest.html"), name="add_contest_page"),
url(r'^problems/$', TemplateView.as_view(template_name="oj/problem/problem_list.html"), name="problem_list_page"),