Пример #1
0
    def test_pagination(self):
        # N.B. Empty thread list is not realistic but convenient for this test
        self.assertEqual(
            self.get_thread_list([], page=1, num_pages=3),
            {
                "results": [],
                "next": "http://testserver/test_path?page=2",
                "previous": None,
            }
        )
        self.assertEqual(
            self.get_thread_list([], page=2, num_pages=3),
            {
                "results": [],
                "next": "http://testserver/test_path?page=3",
                "previous": "http://testserver/test_path?page=1",
            }
        )
        self.assertEqual(
            self.get_thread_list([], page=3, num_pages=3),
            {
                "results": [],
                "next": None,
                "previous": "http://testserver/test_path?page=2",
            }
        )

        # Test page past the last one
        self.register_get_threads_response([], page=3, num_pages=3)
        with self.assertRaises(Http404):
            get_thread_list(self.request, self.course.id, page=4, page_size=10)
Пример #2
0
    def test_pagination(self):
        # N.B. Empty thread list is not realistic but convenient for this test
        self.assertEqual(
            self.get_thread_list([], page=1, num_pages=3),
            {
                "results": [],
                "next": "http://testserver/test_path?page=2",
                "previous": None,
            }
        )
        self.assertEqual(
            self.get_thread_list([], page=2, num_pages=3),
            {
                "results": [],
                "next": "http://testserver/test_path?page=3",
                "previous": "http://testserver/test_path?page=1",
            }
        )
        self.assertEqual(
            self.get_thread_list([], page=3, num_pages=3),
            {
                "results": [],
                "next": None,
                "previous": "http://testserver/test_path?page=2",
            }
        )

        # Test page past the last one
        self.register_get_threads_response([], page=3, num_pages=3)
        with self.assertRaises(Http404):
            get_thread_list(self.request, self.course.id, page=4, page_size=10)
Пример #3
0
 def get_thread_list(self, threads, page=1, page_size=1, num_pages=1, course=None):
     """
     Register the appropriate comments service response, then call
     get_thread_list and return the result.
     """
     course = course or self.course
     self.register_get_threads_response(threads, page, num_pages)
     ret = get_thread_list(self.request, course.id, page, page_size)
     return ret
Пример #4
0
 def get_thread_list(self, threads, page=1, page_size=1, num_pages=1, course=None):
     """
     Register the appropriate comments service response, then call
     get_thread_list and return the result.
     """
     course = course or self.course
     self.register_get_threads_response(threads, page, num_pages)
     ret = get_thread_list(self.request, course.id, page, page_size)
     return ret
Пример #5
0
 def list(self, request):
     """
     Implements the GET method for the list endpoint as described in the
     class docstring.
     """
     form = ThreadListGetForm(request.GET)
     if not form.is_valid():
         raise ValidationError(form.errors)
     return Response(
         get_thread_list(request, form.cleaned_data["course_id"],
                         form.cleaned_data["page"],
                         form.cleaned_data["page_size"]))
Пример #6
0
 def list(self, request):
     """
     Implements the GET method for the list endpoint as described in the
     class docstring.
     """
     form = ThreadListGetForm(request.GET)
     if not form.is_valid():
         raise ValidationError(form.errors)
     return get_thread_list(
         request, form.cleaned_data["course_id"], form.cleaned_data["page"],
         form.cleaned_data["page_size"], form.cleaned_data["topic_id"],
         form.cleaned_data["text_search"], form.cleaned_data["following"],
         form.cleaned_data["view"], form.cleaned_data["order_by"],
         form.cleaned_data["order_direction"],
         form.cleaned_data["requested_fields"])
Пример #7
0
 def list(self, request):
     """
     Implements the GET method for the list endpoint as described in the
     class docstring.
     """
     form = ThreadListGetForm(request.GET)
     if not form.is_valid():
         raise ValidationError(form.errors)
     return Response(
         get_thread_list(
             request,
             form.cleaned_data["course_id"],
             form.cleaned_data["page"],
             form.cleaned_data["page_size"]
         )
     )
Пример #8
0
 def list(self, request):
     """
     Implements the GET method for the list endpoint as described in the
     class docstring.
     """
     form = ThreadListGetForm(request.GET)
     if not form.is_valid():
         raise ValidationError(form.errors)
     return get_thread_list(
         request,
         form.cleaned_data["course_id"],
         form.cleaned_data["page"],
         form.cleaned_data["page_size"],
         form.cleaned_data["topic_id"],
         form.cleaned_data["text_search"],
         form.cleaned_data["following"],
         form.cleaned_data["view"],
         form.cleaned_data["order_by"],
         form.cleaned_data["order_direction"],
     )
Пример #9
0
 def test_nonexistent_course(self):
     with self.assertRaises(Http404):
         get_thread_list(self.request, CourseLocator.from_string("non/existent/course"), 1, 1)