def test_correct_url_was_called_with_client_id(self, mock_request): mock_request.return_value.status_code = 200 api_call('get', 'end_point', client_id='client_id') mock_request.assert_called_once_with( 'get', 'https://api.quizlet.com/2.0/end_point', params={'client_id': 'client_id'}, headers=None)
def test_correct_url_was_called_with_access_token(self, mock_request): mock_request.return_value.status_code = 200 api_call('get', 'end_point', access_token='token') mock_request.assert_called_once_with( 'get', 'https://api.quizlet.com/2.0/end_point', params={}, headers={'Authorization': 'Bearer token'})
def add_term(set_id, term, access_token): """Add the given term to the given set. :param term: Instance of Term. """ api_call('post', 'sets/{}/terms'.format(set_id), term.to_dict(), access_token=access_token)
def test_non_json_output(self, mock_request): response = mock.Mock() response.status_code = 200 response.json = mock.Mock( side_effect=json.decoder.JSONDecodeError('', '', 1)) mock_request.return_value = response data = api_call('get', 'end_point', client_id='client_id') self.assertEqual(data, None)
def test_json_output_was_returned(self, mock_request): response = mock.Mock() response.status_code = 200 mock_request.return_value = response data = api_call('get', 'end_point', client_id='client_id') self.assertEqual(data, response.json())
def test_forbidden_without_error_title(self, mock_request): mock_request.return_value.status_code = 403 mock_request.return_value.json = mock.Mock(return_value={}) with self.assertRaises(ValueError): api_call('get', 'end_point', client_id='client_id')
def test_unknown_endpoint(self, mock_request): mock_request.return_value.status_code = 404 mock_request.return_value.json = mock.Mock( side_effect=ValueError('invalid json')) with self.assertRaises(ValueError): api_call('get', 'unknown_end_point', client_id='client_id')
def test_client_id_and_access_token(self): with self.assertRaises(ValueError): api_call('get', 'end_point', client_id='client_id', access_token='token')
def test_no_client_id_or_access_token(self): with self.assertRaises(ValueError): api_call('get', 'end_point')
def get_user_sets(client_id, user_id): """Find all user sets.""" data = api_call('get', 'users/{}/sets'.format(user_id), client_id=client_id) return [WordSet.from_dict(wordset) for wordset in data]
def delete_term(set_id, term_id, access_token): """Delete the given term.""" api_call('delete', 'sets/{}/terms/{}'.format(set_id, term_id), access_token=access_token)