예제 #1
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {'account': ['get_by_id'], 'enrollment': ['get_by_id']}
            register_uris(requires, m)

            self.account = self.canvas.get_account(1)
            self.enrollment = self.account.get_enrollment(1)
예제 #2
0
class TestPageRevision(unittest.TestCase):

    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id', 'get_page'],
                'group': ['get_by_id', 'pages_get_page'],
                'page': ['get_latest_rev_by_id', 'get_latest_rev_by_id_group']
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page('my-url')
            self.page_group = self.group.get_page('my-url')
            self.revision = self.page_course.get_revision_by_id(2)
            self.group_revision = self.page_group.get_revision_by_id(2)

    # __str__()
    def test__str__(self, m):
        string = str(self.revision)
        self.assertIsInstance(string, str)

    # parent_id
    def test_parent_id_course(self, m):
        self.assertEqual(self.revision.parent_id, 1)

    def test_parent_id_no_id(self, m):
        page = PageRevision(self.canvas._Canvas__requester, {'url': 'my-url'})
        with self.assertRaises(ValueError):
            page.parent_id

    # parent_type
    def test_parent_type_course(self, m):
        self.assertEqual(self.page_course.parent_type, 'course')

    def test_parent_type_group(self, m):
        self.assertEqual(self.page_group.parent_type, 'group')

    def test_parent_type_no_id(self, m):
        page = PageRevision(self.canvas._Canvas__requester, {'url': 'my-url'})
        with self.assertRaises(ValueError):
            page.parent_type

    # get_parent()
    def test_get_parent_course(self, m):
        register_uris({'course': ['get_by_id']}, m)

        self.assertIsInstance(self.revision.get_parent(), Course)

    def test_get_parent_group(self, m):
        register_uris({'group': ['get_by_id']}, m)

        self.assertIsInstance(self.group_revision.get_parent(), Group)
예제 #3
0
class TestPageRevision(unittest.TestCase):
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id", "get_page"],
                "group": ["get_by_id", "pages_get_page"],
                "page": ["get_latest_rev_by_id", "get_latest_rev_by_id_group"],
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page("my-url")
            self.page_group = self.group.get_page("my-url")
            self.revision = self.page_course.get_revision_by_id(2)
            self.group_revision = self.page_group.get_revision_by_id(2)

    # __str__()
    def test__str__(self, m):
        string = str(self.revision)
        self.assertIsInstance(string, str)

    # parent_id
    def test_parent_id_course(self, m):
        self.assertEqual(self.revision.parent_id, 1)

    def test_parent_id_no_id(self, m):
        page = PageRevision(self.canvas._Canvas__requester, {"url": "my-url"})
        with self.assertRaises(ValueError):
            page.parent_id

    # parent_type
    def test_parent_type_course(self, m):
        self.assertEqual(self.page_course.parent_type, "course")

    def test_parent_type_group(self, m):
        self.assertEqual(self.page_group.parent_type, "group")

    def test_parent_type_no_id(self, m):
        page = PageRevision(self.canvas._Canvas__requester, {"url": "my-url"})
        with self.assertRaises(ValueError):
            page.parent_type

    # get_parent()
    def test_get_parent_course(self, m):
        register_uris({"course": ["get_by_id"]}, m)

        self.assertIsInstance(self.revision.get_parent(), Course)

    def test_get_parent_group(self, m):
        register_uris({"group": ["get_by_id"]}, m)

        self.assertIsInstance(self.group_revision.get_parent(), Group)
예제 #4
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id", "create_group_category"],
                "group": ["category_assign_members_false"],
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group_category = self.course.create_group_category("Test String")
            self.progress = self.group_category.assign_members()
예제 #5
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id', 'create_group_category'],
                'group': ['category_assign_members_false']
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group_category = self.course.create_group_category(
                "Test String")
            self.progress = self.group_category.assign_members()
예제 #6
0
 def build_canvas_connection(self) -> Canvas:
     self.line_separator()
     while True:
         try:
             url = input(
                 "Please enter the Canvas url (example: https://canvas.ucdavis.edu/): "
             )
             token = input("Please enter your Canvas token: ")
             connection = Canvas(url, token)
             # Check if url and token match
             connection.get_current_user()
         except (UserWarning, ValueError) as e:
             print(e)
         else:
             return connection
예제 #7
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id'],
                'group': ['get_by_id', 'pages_get_page'],
                'page': ['get_page']
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page('my-url')
            self.page_group = self.group.get_page('my-url')
예제 #8
0
class TestProgress(unittest.TestCase):
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id', 'create_group_category'],
                'group': ['category_assign_members_false']
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group_category = self.course.create_group_category(
                "Test String")
            self.progress = self.group_category.assign_members()

    # __str__()
    def test__str__(self, m):
        string = str(self.progress)
        self.assertIsInstance(string, str)

    # query()
    def test_query(self, m):
        register_uris({'progress': ['progress_query']}, m)

        response = self.progress.query()
        self.assertIsInstance(response, Progress)
예제 #9
0
 def print_favorite_courses(self, canvas: Canvas) -> int:
     print("These are your FAVORITE Canvas courses.")
     end_favorite_index = self.print_list_with_index(
         canvas.get_current_user().get_favorite_courses())
     all_course_index = end_favorite_index + 1
     print(str(all_course_index) + ": " + "Show me ALL Canvas courses")
     return all_course_index
예제 #10
0
class TestEnrollment(unittest.TestCase):
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {"account": ["get_by_id"], "enrollment": ["get_by_id"]}
            register_uris(requires, m)

            self.account = self.canvas.get_account(1)
            self.enrollment = self.account.get_enrollment(1)

    # __str__()
    def test__str__(self, m):
        string = str(self.enrollment)
        self.assertIsInstance(string, str)

    # deactivate()
    def test_deactivate(self, m):
        register_uris({"enrollment": ["deactivate"]}, m)

        target_enrollment = self.enrollment.deactivate("conclude")

        self.assertIsInstance(target_enrollment, Enrollment)

    def test_deactivate_invalid_task(self, m):
        with self.assertRaises(ValueError):
            self.enrollment.deactivate("finish")

    # reactivate()
    def test_reactivate(self, m):
        register_uris({"enrollment": ["reactivate"]}, m)

        target_enrollment = self.enrollment.reactivate()

        self.assertIsInstance(target_enrollment, Enrollment)
예제 #11
0
    def setUp(self):

        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id"],
                "group": ["get_by_id", "pages_get_page"],
                "page": ["get_page"],
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page("my-url")
            self.page_group = self.group.get_page("my-url")
예제 #12
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id", "get_assignment_by_id"],
                "assignment": ["list_peer_reviews"],
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.assignment = self.course.get_assignment(1)
            self.peer_reviews = [
                peer_review for peer_review in self.assignment.get_peer_reviews()
            ]
예제 #13
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id', 'get_assignment_by_id'],
                'assignment': ['list_peer_reviews']
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.assignment = self.course.get_assignment(1)
            self.peer_reviews = [
                peer_review
                for peer_review in self.assignment.get_peer_reviews()
            ]
예제 #14
0
 def get_course(self, canvas: Canvas) -> Course:
     self.line_separator()
     ask_course = "Please enter the index number in front of the course in which you want to manage the grades: "
     all_course_index = self.print_favorite_courses(canvas)
     user_input_course = self.get_user_input_int(start_point=1,
                                                 end_point=all_course_index,
                                                 prompt=ask_course,
                                                 comma_allowed=False)
     if user_input_course == all_course_index:
         end_all_index = self.print_all_courses(canvas)
         user_input_course = self.get_user_input_int(
             start_point=1,
             end_point=end_all_index,
             prompt=ask_course,
             comma_allowed=False)
     course_index = user_input_course - 1
     canvas_course = canvas.get_current_user().get_favorite_courses(
     )[course_index]
     return canvas_course
예제 #15
0
class TestPeerReview(unittest.TestCase):
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id", "get_assignment_by_id"],
                "assignment": ["list_peer_reviews"],
            }

            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.assignment = self.course.get_assignment(1)
            self.peer_reviews = [
                peer_review for peer_review in self.assignment.get_peer_reviews()
            ]

    # __str__()
    def test__str__(self, m):
        string = str(self.peer_reviews[0])
        self.assertIsInstance(string, str)
예제 #16
0
class TestEnrollment(unittest.TestCase):
    @classmethod
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {'account': ['get_by_id'], 'enrollment': ['get_by_id']}
            register_uris(requires, m)

            self.account = self.canvas.get_account(1)
            self.enrollment = self.account.get_enrollment(1)

    # __str__()
    def test__str__(self, m):
        string = str(self.enrollment)
        self.assertIsInstance(string, str)

    # deactivate()
    def test_deactivate(self, m):
        register_uris({'enrollment': ['deactivate']}, m)

        target_enrollment = self.enrollment.deactivate('conclude')

        self.assertIsInstance(target_enrollment, Enrollment)

    def test_deactivate_invalid_task(self, m):
        with self.assertRaises(ValueError):
            self.enrollment.deactivate('finish')

    # reactivate()
    def test_reactivate(self, m):
        register_uris({'enrollment': ['reactivate']}, m)

        target_enrollment = self.enrollment.reactivate()

        self.assertIsInstance(target_enrollment, Enrollment)
예제 #17
0
class TestPage(unittest.TestCase):
    def setUp(self):

        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                "course": ["get_by_id"],
                "group": ["get_by_id", "pages_get_page"],
                "page": ["get_page"],
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page("my-url")
            self.page_group = self.group.get_page("my-url")

    # __str__()
    def test__str__(self, m):
        string = str(self.page_course)
        self.assertIsInstance(string, str)

    def test_edit(self, m):
        register_uris({"page": ["edit"]}, m)

        new_title = "New Page"
        self.page_course.edit(page={"title": new_title})

        self.assertIsInstance(self.page_course, Page)
        self.assertTrue(hasattr(self.page_course, "title"))
        self.assertEqual(self.page_course.title, new_title)

    def test_delete(self, m):
        register_uris({"page": ["delete_page"]}, m)

        page = self.page_course
        deleted_page = page.delete()

        self.assertIsInstance(deleted_page, Page)

    # get_revisions()
    def test_get_revisions(self, m):
        register_uris({"page": ["list_revisions", "list_revisions2"]}, m)

        revisions = self.page_course.get_revisions()
        rev_list = [rev for rev in revisions]

        self.assertEqual(len(rev_list), 4)
        self.assertIsInstance(rev_list[0], PageRevision)

    def test_show_latest_revision(self, m):
        register_uris({"page": ["latest_revision"]}, m)

        revision = self.page_course.show_latest_revision()

        self.assertIsInstance(revision, PageRevision)

    def test_get_revision_by_id_course(self, m):
        register_uris({"page": ["get_latest_rev_by_id"]}, m)

        revision_by_id = self.page_course.get_revision_by_id(2)
        self.assertIsInstance(revision_by_id, PageRevision)

        revision_by_obj = self.page_course.get_revision_by_id(revision_by_id)
        self.assertIsInstance(revision_by_obj, PageRevision)

    def test_get_revision_by_id_group(self, m):
        register_uris({"page": ["get_latest_rev_by_id_group"]}, m)

        revision_by_id = self.page_group.get_revision_by_id(2)
        self.assertIsInstance(revision_by_id, PageRevision)

        revision_by_obj = self.page_group.get_revision_by_id(revision_by_id)
        self.assertIsInstance(revision_by_obj, PageRevision)

    def test_revert_to_revision_course(self, m):
        register_uris({"page": ["revert_to_revision"]}, m)

        revision = self.page_course.revert_to_revision(3)

        self.assertIsInstance(revision, PageRevision)

    def test_revert_to_revision_group(self, m):
        register_uris({"page": ["revert_to_revision_group"]}, m)

        revision = self.page_group.revert_to_revision(3)

        self.assertIsInstance(revision, PageRevision)

    # parent_id
    def test_parent_id_course(self, m):
        self.assertEqual(self.page_course.parent_id, 1)

    def test_parent_id_group(self, m):
        self.assertEqual(self.page_group.parent_id, 1)

    def test_parent_id_no_id(self, m):
        page = Page(self.canvas._Canvas__requester, {"url": "my-url"})
        with self.assertRaises(ValueError):
            page.parent_id

    # parent_type
    def test_parent_type_course(self, m):
        self.assertEqual(self.page_course.parent_type, "course")

    def test_parent_type_group(self, m):
        self.assertEqual(self.page_group.parent_type, "group")

    def test_parent_type_no_id(self, m):
        page = Page(self.canvas._Canvas__requester, {"url": "my-url"})
        with self.assertRaises(ValueError):
            page.parent_type

    # get_parent()
    def test_get_parent_course(self, m):
        register_uris({"course": ["get_by_id"]}, m)

        self.assertIsInstance(self.page_course.get_parent(), Course)

    def test_get_parent_group(self, m):
        register_uris({"group": ["get_by_id"]}, m)

        self.assertIsInstance(self.page_group.get_parent(), Group)
예제 #18
0
 def print_all_courses(self, canvas: Canvas) -> int:
     print("These are ALL of your Canvas courses")
     end_all_index = self.print_list_with_index(canvas.get_courses())
     return end_all_index
예제 #19
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)
        self.requester = self.canvas._Canvas__requester

        self.filename = "testfile_uploader_{}".format(uuid.uuid4().hex)
        self.file = open(self.filename, "w+")
예제 #20
0
for row in range(0, len(df['Login ID'].keys())):
    user_dic[df['Login ID'][row]] = df['ID'][row]

id_list = []
for student in participant_list:
    if student in user_dic.keys():
        id_list.append(user_dic[student])

API_URL = "https://uncc.instructure.com/"
# Canvas API key
file = open('token.txt', 'r')

API_KEY = str(file.read())
file.close()
# Initialize a new Canvas object
canvas = Canvas(API_URL, API_KEY)

course = canvas.get_course(input('Enter Course ID: '))

print('Grading the course : ' + course.name)

survey_assignment = course.get_assignment(input('Enter Assignment ID: '))

submissions = survey_assignment.get_submissions()
total_points = float(survey_assignment.points_possible)
for submission in submissions:
    if submission.user_id in id_list:
        submission.edit(submission={'posted_grade': total_points})
    else:
        submission.edit(submission={'posted_grade': 0.0})
    print('student ' + str(submission.user_id) + ' graded')
예제 #21
0
    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)
        self.requester = self.canvas._Canvas__requester

        self.filename = 'testfile_uploader_%s' % uuid.uuid4().hex
        self.file = open(self.filename, 'w+')
예제 #22
0
class TestPage(unittest.TestCase):

    def setUp(self):
        self.canvas = Canvas(settings.BASE_URL, settings.API_KEY)

        with requests_mock.Mocker() as m:
            requires = {
                'course': ['get_by_id'],
                'group': ['get_by_id', 'pages_get_page'],
                'page': ['get_page']
            }
            register_uris(requires, m)

            self.course = self.canvas.get_course(1)
            self.group = self.canvas.get_group(1)
            self.page_course = self.course.get_page('my-url')
            self.page_group = self.group.get_page('my-url')

    # __str__()
    def test__str__(self, m):
        string = str(self.page_course)
        self.assertIsInstance(string, str)

    def test_edit(self, m):
        register_uris({'page': ['edit']}, m)

        new_title = "New Page"
        self.page_course.edit(page={'title': new_title})

        self.assertIsInstance(self.page_course, Page)
        self.assertTrue(hasattr(self.page_course, 'title'))
        self.assertEqual(self.page_course.title, new_title)

    def test_delete(self, m):
        register_uris({'page': ['delete_page']}, m)

        page = self.page_course
        deleted_page = page.delete()

        self.assertIsInstance(deleted_page, Page)

    def test_list_revisions(self, m):
        register_uris({'page': ['list_revisions', 'list_revisions2']}, m)

        revisions = self.page_course.list_revisions()
        rev_list = [rev for rev in revisions]

        self.assertEqual(len(rev_list), 4)
        self.assertIsInstance(rev_list[0], PageRevision)

    def test_show_latest_revision(self, m):
        register_uris({'page': ['latest_revision']}, m)

        revision = self.page_course.show_latest_revision()

        self.assertIsInstance(revision, PageRevision)

    def test_get_revision_by_id_course(self, m):
        register_uris({'page': ['get_latest_rev_by_id']}, m)

        revision = self.page_course.get_revision_by_id(2)

        self.assertIsInstance(revision, PageRevision)

    def test_get_revision_by_id_group(self, m):
        register_uris({'page': ['get_latest_rev_by_id_group']}, m)

        revision = self.page_group.get_revision_by_id(2)

        self.assertIsInstance(revision, PageRevision)

    def test_revert_to_revision_course(self, m):
        register_uris({'page': ['revert_to_revision']}, m)

        revision = self.page_course.revert_to_revision(3)

        self.assertIsInstance(revision, PageRevision)

    def test_revert_to_revision_group(self, m):
        register_uris({'page': ['revert_to_revision_group']}, m)

        revision = self.page_group.revert_to_revision(3)

        self.assertIsInstance(revision, PageRevision)

    # parent_id
    def test_parent_id_course(self, m):
        self.assertEqual(self.page_course.parent_id, 1)

    def test_parent_id_group(self, m):
        self.assertEqual(self.page_group.parent_id, 1)

    def test_parent_id_no_id(self, m):
        page = Page(self.canvas._Canvas__requester, {'url': 'my-url'})
        with self.assertRaises(ValueError):
            page.parent_id

    # parent_type
    def test_parent_type_course(self, m):
        self.assertEqual(self.page_course.parent_type, 'course')

    def test_parent_type_group(self, m):
        self.assertEqual(self.page_group.parent_type, 'group')

    def test_parent_type_no_id(self, m):
        page = Page(self.canvas._Canvas__requester, {'url': 'my-url'})
        with self.assertRaises(ValueError):
            page.parent_type

    # get_parent()
    def test_get_parent_course(self, m):
        register_uris({'course': ['get_by_id']}, m)

        self.assertIsInstance(self.page_course.get_parent(), Course)

    def test_get_parent_group(self, m):
        register_uris({'group': ['get_by_id']}, m)

        self.assertIsInstance(self.page_group.get_parent(), Group)