MA-1882 adding tests and reworking regex to exclude blocks routes
This commit is contained in:
@@ -7,8 +7,8 @@ from microsite_configuration import microsite
|
||||
from opaque_keys import InvalidKeyError
|
||||
from opaque_keys.edx.locations import SlashSeparatedCourseKey
|
||||
|
||||
|
||||
COURSE_REGEX = re.compile(r'^.*?/(api/courses/v1/)?courses/{}'.format(settings.COURSE_ID_PATTERN))
|
||||
# accommodates course api urls, excluding /blocks routes.
|
||||
COURSE_REGEX = re.compile(r'^(.*?/courses/)+(?!v[0-9]+/blocks){}'.format(settings.COURSE_ID_PATTERN))
|
||||
|
||||
|
||||
def safe_get_host(request):
|
||||
|
||||
@@ -50,8 +50,26 @@ class ResponseTestCase(unittest.TestCase):
|
||||
self.assertIsNone(course_id_from_url('/login'))
|
||||
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('/api/courses/v1/blocks/edX/maths/2020'))
|
||||
self.assertIsNone(course_id_from_url('/api/courses/v1/blocks/course-v1:edX+maths+2020'))
|
||||
|
||||
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')
|
||||
self.assertEqual(course_id.org, 'edX')
|
||||
self.assertEqual(course_id.course, 'maths')
|
||||
self.assertEqual(course_id.run, '2020')
|
||||
|
||||
course_id = course_id_from_url('/api/courses/v1/courses/course-v1: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('/api/courses/v1/courses/edX/maths/2020')
|
||||
self.assertEqual(course_id.org, 'edX')
|
||||
self.assertEqual(course_id.course, 'maths')
|
||||
self.assertEqual(course_id.run, '2020')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user