Skip to content

Commit 3e6cfcf

Browse files
committed
Update 'Requester' to include new_quizzes_url attribute (ucfopen#684)
1 parent 45ba5ac commit 3e6cfcf

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

canvasapi/paginated_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def _get_next_page(self):
103103

104104
regex = r"(?:{}|{})(.*)".format(
105105
re.escape(self._requester.base_url),
106-
re.escape(self._requester.new_quizzes_url),
106+
re.escape(getattr(self._requester, "new_quizzes_url", "")),
107107
)
108108

109109
self._next_url = (

canvasapi/requester.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Requester(object):
2525
Responsible for handling HTTP requests.
2626
"""
2727

28-
def __init__(self, base_url, access_token):
28+
def __init__(self, base_url, access_token, new_quizzes_url = None):
2929
"""
3030
:param base_url: The base URL of the Canvas instance's API.
3131
:type base_url: str
@@ -35,7 +35,7 @@ def __init__(self, base_url, access_token):
3535
# Preserve the original base url and add "/api/v1" to it
3636
self.original_url = base_url
3737
self.base_url = base_url + "/api/v1/"
38-
self.new_quizzes_url = base_url + "/api/quiz/v1/"
38+
self.new_quizzes_url = new_quizzes_url or (base_url + "/api/quiz/v1/")
3939
self.graphql = base_url + "/api/graphql"
4040
self.access_token = access_token
4141
self._session = requests.Session()

tests/test_assignment.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,19 @@ def test_get_submissions(self, m):
171171
self.assertEqual(len(submission_list_by_id), 2)
172172
self.assertIsInstance(submission_list_by_id[0], Submission)
173173

174+
def test_get_submissions_without_new_quizzes_url(self, m):
175+
register_uris({"submission": ["list_submissions"]}, m)
176+
177+
# Explicitly remove the `new_quizzes_url` attribute to simulate the base case
178+
if hasattr(self.canvas._Canvas__requester, "new_quizzes_url"):
179+
del self.canvas._Canvas__requester.new_quizzes_url
180+
181+
submissions = self.assignment.get_submissions()
182+
submission_list = list(submissions)
183+
184+
self.assertEqual(len(submission_list), 2)
185+
self.assertIsInstance(submission_list[0], Submission)
186+
174187
# set_extensions()
175188
def test_set_extensions(self, m):
176189
register_uris({"assignment": ["set_extensions"]}, m)

0 commit comments

Comments
 (0)