Commit 367dc257 by Brandon DeRosier

Test multi-page gitlogs

parent 805e2d63
...@@ -744,8 +744,10 @@ class GitLogs(TemplateView): ...@@ -744,8 +744,10 @@ class GitLogs(TemplateView):
except PageNotAnInteger: except PageNotAnInteger:
logs = paginator.page(1) logs = paginator.page(1)
except EmptyPage: except EmptyPage:
# If the page is too high # If the page is too high or low
logs = paginator.page(paginator.num_pages) given_page = int(request.GET.get('page'))
page = min(max(1, given_page), paginator.num_pages)
logs = paginator.page(page)
mdb.disconnect() mdb.disconnect()
context = { context = {
......
...@@ -25,6 +25,7 @@ from xmodule.modulestore.tests.django_utils import ( ...@@ -25,6 +25,7 @@ from xmodule.modulestore.tests.django_utils import (
from dashboard.models import CourseImportLog from dashboard.models import CourseImportLog
from dashboard.sysadmin import Users from dashboard.sysadmin import Users
from dashboard.git_import import GitImportError from dashboard.git_import import GitImportError
from datetime import datetime
from external_auth.models import ExternalAuthMap from external_auth.models import ExternalAuthMap
from student.roles import CourseStaffRole, GlobalStaff from student.roles import CourseStaffRole, GlobalStaff
from student.tests.factories import UserFactory from student.tests.factories import UserFactory
...@@ -589,26 +590,32 @@ class TestSysAdminMongoCourseImport(SysadminBaseTestCase): ...@@ -589,26 +590,32 @@ class TestSysAdminMongoCourseImport(SysadminBaseTestCase):
""" """
self._setstaff_login() self._setstaff_login()
self._mkdir(getattr(settings, 'GIT_REPO_DIR'))
self._add_edx4edx() mongoengine.connect(TEST_MONGODB_LOG['db'])
for page in [-1, 0, 1, 2, 'abc']: for _ in xrange(15):
# Test the page parameter in various different ways CourseImportLog(
course_id=SlashSeparatedCourseKey("test", "test", "test"),
location="location",
import_log="import_log",
git_log="git_log",
repo_dir="repo_dir",
created=datetime.now()
).save()
for page, expected in [(-1, 1), (1, 1), (2, 2), (30, 2), ('abc', 1)]:
response = self.client.get( response = self.client.get(
'{}?page={}'.format( '{}?page={}'.format(
reverse('gitlogs_detail', kwargs={ reverse('gitlogs'),
'course_id': 'MITx/edx4edx/edx4edx'
}),
page page
) )
) )
self.assertIn( self.assertIn(
'Page 1 of 1', 'Page {} of 2'.format(expected),
response.content response.content
) )
self._rm_edx4edx() CourseImportLog.objects.delete()
def test_gitlog_courseteam_access(self): def test_gitlog_courseteam_access(self):
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment