Ejemplo n.º 1
0
    def test_get_paginated_50(self):
        url = 'https://foo.cc.columbia.edu/api/v1/search'

        mock_response_1 = get_mock_response_with_pagination(url)

        mock_response_2 = MagicMock(headers={'link': url + 'page=2'})
        mock_response_2.json.return_value = {'value': 'second response'}

        self._mock_requests.get.side_effect = [
            mock_response_1, mock_response_2
        ]

        test_client = CanvasAPIv1('https://foo.cc.columbia.edu/api/v1/',
                                  TEST_TOKEN,
                                  requests_lib=self._mock_requests,
                                  per_page=50)

        generator = test_client._get_paginated(url)

        next_value = next(generator)
        assert 'value' in next_value
        assert next_value['value'] == 'first response'
        next_value = next(generator)
        assert 'value' in next_value
        assert next_value['value'] == 'second response'

        print(self._mock_requests.get.mock_calls)

        # there should be no additional pages to paginate, so expect an error:
        with self.assertRaises(StopIteration):
            next(generator)
Ejemplo n.º 2
0
    def test_put_page_is_sis_course_id(self):
        course = 'ASDFD5100_007_2018_2'
        url = 'test_page'
        title = 'Test Title'
        body = '<html><body><h1>Test Title</h1><p>Foo</p></body></html>'
        data = {
            'wiki_page[url]': url,
            'wiki_page[published]': True,
            'wiki_page[notify_of_update]': False,
            'wiki_page[title]': title,
            'wiki_page[front_page]': False,
            'wiki_page[body]': body
        }

        test_client = CanvasAPIv1('https://foo.cc.columbia.edu/api/v1/',
                                  'foo_token',
                                  requests_lib=self._mock_requests,
                                  is_sis_course_id=True)

        test_client.put_page(course, url=url, title=title, body=body)
        course_str = 'sis_course_id:{}'.format(course)
        url = 'https://foo.cc.columbia.edu/api/v1/courses/{}/pages/{}'.format(
            course_str, url)

        _assert_request_called_once_with(self._mock_requests.put,
                                         url,
                                         params=DEFAULT_PARAMS,
                                         data=data)
Ejemplo n.º 3
0
    def test_get_account_roles_sis(self):
        test_client = CanvasAPIv1('https://foo.cc.columbia.edu/api/v1/',
                                  'foo_token',
                                  requests_lib=self._mock_requests,
                                  is_sis_account_id=True)

        test_client.get_account_roles('ASDF')
        url = 'https://foo.cc.columbia.edu/api/v1/accounts/sis_account_id:ASDF/roles'
        _assert_request_called_once_with(self._mock_requests.get, url)
Ejemplo n.º 4
0
This module provides a collection of utilities and a thin wrapper
interface with the Canvas API using a combination of the python 
CanvasAPIv1 package and direct HTTPS connections.  

References:
 - UNL's Canvas API instance is at:
   https://canvas.unl.edu/api/v1/
 - UNL's Live instance:
   https://canvas.unl.edu/doc/api/live
 - CanvasAPIv1 (canvas-api-client) documentation:
   https://wgwz.github.io/canvas-lms-tools/canvas_api_client.html#module-canvas_api_client.v1_client
   
"""

canvasHost = "canvas.unl.edu"
api = CanvasAPIv1(config.canvasUrl, config.canvasApiKey)


def getGroupCategoryId(groupSetName):
    """
  Retrieves the Canvas "Group Set" ID (internally this is 
  designated as a Group Category) given the name of the 
  group such as "Assignment Pairs".  If no match is found, 
  None is returned.
  """
    path = ("/api/v1/courses/" + config.canvasCourseId +
            "/group_categories/?access_token=" + config.canvasApiKey)
    connection = http.client.HTTPSConnection(canvasHost)
    connection.request("GET", path)
    response = connection.getresponse()
    #print("Status: {} and reason: {}".format(response.status, response.reason))
Ejemplo n.º 5
0
 def setUp(self, ):
     self._mock_requests = MagicMock()
     self.test_client = CanvasAPIv1('https://foo.cc.columbia.edu/api/v1/',
                                    'foo_token',
                                    requests_lib=self._mock_requests)