making check more generic
This commit is contained in:
@@ -7,8 +7,8 @@ from microsite_configuration import microsite
|
|||||||
from opaque_keys import InvalidKeyError
|
from opaque_keys import InvalidKeyError
|
||||||
from opaque_keys.edx.locations import SlashSeparatedCourseKey
|
from opaque_keys.edx.locations import SlashSeparatedCourseKey
|
||||||
|
|
||||||
# accommodates course api urls, excluding /blocks routes.
|
# accommodates course api urls, excluding any course api routes that do not fall under v*/courses, such as v1/blocks.
|
||||||
COURSE_REGEX = re.compile(r'^(.*?/courses/)+(?!v[0-9]+/blocks){}'.format(settings.COURSE_ID_PATTERN))
|
COURSE_REGEX = re.compile(r'^(.*?/courses/)(?!v[0-9]+/[^/]+){}'.format(settings.COURSE_ID_PATTERN))
|
||||||
|
|
||||||
|
|
||||||
def safe_get_host(request):
|
def safe_get_host(request):
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import unittest
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import SuspiciousOperation
|
from django.core.exceptions import SuspiciousOperation
|
||||||
from django.test.client import RequestFactory
|
from django.test.client import RequestFactory
|
||||||
|
|
||||||
from util.request import course_id_from_url, safe_get_host
|
from util.request import course_id_from_url, safe_get_host
|
||||||
|
|
||||||
|
|
||||||
@@ -51,25 +50,23 @@ class ResponseTestCase(unittest.TestCase):
|
|||||||
self.assertIsNone(course_id_from_url('/course/edX/maths/2020'))
|
self.assertIsNone(course_id_from_url('/course/edX/maths/2020'))
|
||||||
self.assertIsNone(course_id_from_url('/courses/edX/maths/'))
|
self.assertIsNone(course_id_from_url('/courses/edX/maths/'))
|
||||||
self.assertIsNone(course_id_from_url('/api/courses/v1/blocks/edX/maths/2020'))
|
self.assertIsNone(course_id_from_url('/api/courses/v1/blocks/edX/maths/2020'))
|
||||||
self.assertIsNone(course_id_from_url('/api/courses/v1/blocks/course-v1:edX+maths+2020'))
|
self.assertIsNone(course_id_from_url('/api/courses/v1/blocks/course-v1:incidental+courseid+formatting'))
|
||||||
|
self.assertIsNone(course_id_from_url('/api/courses/v41/notcourses/course-v1:incidental+courseid+formatting'))
|
||||||
course_id = course_id_from_url('/courses/edX/maths/2020')
|
|
||||||
self.assertEqual(course_id.org, 'edX')
|
|
||||||
self.assertEqual(course_id.course, 'maths')
|
|
||||||
self.assertEqual(course_id.run, '2020')
|
|
||||||
|
|
||||||
course_id = course_id_from_url('/courses/course-v1:edX+maths+2020')
|
course_id = course_id_from_url('/courses/course-v1:edX+maths+2020')
|
||||||
self.assertEqual(course_id.org, 'edX')
|
self.assertCourseIdFieldsMatch(course_id=course_id, org="edX", course='maths', run='2020')
|
||||||
self.assertEqual(course_id.course, 'maths')
|
|
||||||
self.assertEqual(course_id.run, '2020')
|
course_id = course_id_from_url('/courses/edX/maths/2020')
|
||||||
|
self.assertCourseIdFieldsMatch(course_id=course_id, org='edX', course='maths', run='2020')
|
||||||
|
|
||||||
course_id = course_id_from_url('/api/courses/v1/courses/course-v1:edX+maths+2020')
|
course_id = course_id_from_url('/api/courses/v1/courses/course-v1:edX+maths+2020')
|
||||||
self.assertEqual(course_id.org, 'edX')
|
self.assertCourseIdFieldsMatch(course_id=course_id, org='edX', course='maths', run='2020')
|
||||||
self.assertEqual(course_id.course, 'maths')
|
|
||||||
self.assertEqual(course_id.run, '2020')
|
|
||||||
|
|
||||||
course_id = course_id_from_url('/api/courses/v1/courses/edX/maths/2020')
|
course_id = course_id_from_url('/api/courses/v1/courses/edX/maths/2020')
|
||||||
self.assertEqual(course_id.org, 'edX')
|
self.assertCourseIdFieldsMatch(course_id=course_id, org='edX', course='maths', run='2020')
|
||||||
self.assertEqual(course_id.course, 'maths')
|
|
||||||
self.assertEqual(course_id.run, '2020')
|
|
||||||
|
|
||||||
|
def assertCourseIdFieldsMatch(self, course_id, org, course, run):
|
||||||
|
""" Asserts that the passed-in course id matches the specified fields"""
|
||||||
|
self.assertEqual(course_id.org, org)
|
||||||
|
self.assertEqual(course_id.course, course)
|
||||||
|
self.assertEqual(course_id.run, run)
|
||||||
|
|||||||
Reference in New Issue
Block a user