Catch InvalidKeyError in course_id_from_url().
LMS-9663
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
import re
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from microsite_configuration import microsite
|
||||
from opaque_keys import InvalidKeyError
|
||||
from opaque_keys.edx.locations import SlashSeparatedCourseKey
|
||||
|
||||
|
||||
@@ -41,4 +43,7 @@ def course_id_from_url(url):
|
||||
if course_id is None:
|
||||
return None
|
||||
|
||||
return SlashSeparatedCourseKey.from_deprecated_string(course_id)
|
||||
try:
|
||||
return SlashSeparatedCourseKey.from_deprecated_string(course_id)
|
||||
except InvalidKeyError:
|
||||
return None
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
from django.test.client import RequestFactory
|
||||
from django.conf import settings
|
||||
from util.request import safe_get_host
|
||||
from django.core.exceptions import SuspiciousOperation
|
||||
"""Tests for util.request module."""
|
||||
|
||||
import unittest
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import SuspiciousOperation
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from util.request import course_id_from_url, safe_get_host
|
||||
|
||||
|
||||
class ResponseTestCase(unittest.TestCase):
|
||||
""" Tests for response-related utility functions """
|
||||
@@ -37,3 +41,15 @@ class ResponseTestCase(unittest.TestCase):
|
||||
settings.ALLOWED_HOSTS = ["the_valid_website.com"]
|
||||
with self.assertRaises(SuspiciousOperation):
|
||||
safe_get_host(request)
|
||||
|
||||
def test_course_id_from_url(self):
|
||||
""" Test course_id_from_url(). """
|
||||
|
||||
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/'))
|
||||
|
||||
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')
|
||||
|
||||
Reference in New Issue
Block a user