From 5e3c74d382f24b6e5fcca2e4f761042c568607a8 Mon Sep 17 00:00:00 2001 From: Dmitry Savransky Date: Thu, 18 Jun 2020 15:34:33 -0400 Subject: [PATCH 1/2] fixing minor docstring errors in course.create_page --- canvasapi/course.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/canvasapi/course.py b/canvasapi/course.py index 839958a1..95e0626e 100644 --- a/canvasapi/course.py +++ b/canvasapi/course.py @@ -414,10 +414,10 @@ def create_page(self, wiki_page, **kwargs): :calls: `POST /api/v1/courses/:course_id/pages \ `_ - :param title: The title for the page. - :type title: dict + :param wiki_page: The title for the page. + :type wiki_page: dict :returns: The created page. - :rtype: :class:`canvasapi.course.Course` + :rtype: :class:`canvasapi.page.Page` """ if isinstance(wiki_page, dict) and "title" in wiki_page: From d8a7d90f24c468cbc9cbc6026e51b4ce047e55cf Mon Sep 17 00:00:00 2001 From: Dmitry Savransky Date: Mon, 2 Oct 2023 11:17:54 -0400 Subject: [PATCH 2/2] adding duplicate assignment endpoint coverage and tests for #636 --- canvasapi/assignment.py | 17 +++++++++++++++++ tests/fixtures/assignment.json | 11 +++++++++++ tests/test_assignment.py | 9 +++++++++ 3 files changed, 37 insertions(+) diff --git a/canvasapi/assignment.py b/canvasapi/assignment.py index c09a4208..0cf7b12d 100644 --- a/canvasapi/assignment.py +++ b/canvasapi/assignment.py @@ -57,6 +57,23 @@ def delete(self, **kwargs): ) return Assignment(self._requester, response.json()) + def duplicate(self, **kwargs): + """ + Duplicate this assignment. + + :calls: `POST /api/v1/courses/:course_id/assignments/:assignment_id/duplicate \ + `_ + + :rtype: :class:`canvasapi.assignment.Assignment` + """ + + response = self._requester.request( + "POST", + "courses/{}/assignments/{}/duplicate".format(self.course_id, self.id), + _kwargs=combine_kwargs(**kwargs), + ) + return Assignment(self._requester, response.json()) + def edit(self, **kwargs): """ Modify this assignment. diff --git a/tests/fixtures/assignment.json b/tests/fixtures/assignment.json index cfcbd2f9..30089c50 100644 --- a/tests/fixtures/assignment.json +++ b/tests/fixtures/assignment.json @@ -121,6 +121,17 @@ }, "status_code": 200 }, + "duplicate_assignment": { + "method": "POST", + "endpoint": "courses/1/assignments/1/duplicate", + "data": { + "id": 1, + "course_id": 1, + "name": "Assignment 1 Copy", + "description": "Duplicate assignment" + }, + "status_code": 200 + }, "edit_assignment": { "method": "PUT", "endpoint": "courses/1/assignments/1", diff --git a/tests/test_assignment.py b/tests/test_assignment.py index 8f59ac8d..c6146060 100644 --- a/tests/test_assignment.py +++ b/tests/test_assignment.py @@ -65,6 +65,15 @@ def test_delete_assignments(self, m): self.assertIsInstance(deleted_assignment, Assignment) + # duplicate() + def test_duplicate_assignments(self, m): + register_uris({"assignment": ["duplicate_assignment"]}, m) + + duplicated_assignment = self.assignment.duplicate() + + self.assertIsInstance(duplicated_assignment, Assignment) + self.assertTrue(duplicated_assignment.name == f"{self.assignment.name} Copy") + # edit() def test_edit_assignment(self, m): register_uris({"assignment": ["edit_assignment"]}, m)