diff options
author | 2012-02-09 01:53:06 +0100 | |
---|---|---|
committer | 2012-02-09 01:53:06 +0100 | |
commit | 3ac7f814cf6279e106dfefcf64a13b0318f959ba (patch) | |
tree | 54b9ddcbb55cda9c4de54ed0a641e918cd86a81e /pygithub3/tests/core/test_client.py | |
parent | Fix litle bugs (diff) | |
download | python-github3-3ac7f814cf6279e106dfefcf64a13b0318f959ba.tar.xz python-github3-3ac7f814cf6279e106dfefcf64a13b0318f959ba.zip |
Core tests
core.client
core.result
Diffstat (limited to 'pygithub3/tests/core/test_client.py')
-rw-r--r-- | pygithub3/tests/core/test_client.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/pygithub3/tests/core/test_client.py b/pygithub3/tests/core/test_client.py new file mode 100644 index 0000000..57051e2 --- /dev/null +++ b/pygithub3/tests/core/test_client.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from unittest import TestCase + +import requests +from pygithub3.core.client import Client +from pygithub3.exceptions import * +from mock import patch + + +class TestClient(TestCase): + + def setUp(self): + self.c = Client() + + def test_set_credentials_with_valid(self): + self.c.set_credentials('login', 'password') + self.assertEqual(self.c.requester.auth, ('login', 'password')) + + def test_set_credentials_with_invalid(self): + self.c.set_credentials('', '') + self.assertIsNone(self.c.requester.auth) + + def test_set_token_with_valid(self): + self.c.set_token('tokenize') + self.assertEqual(self.c.requester.params['access_token'], 'tokenize') + + def test_set_token_with_invalid(self): + self.c.set_token('') + self.assertIsNone(self.c.requester.params.get('access_token')) + + def test_INIT_client_with_another_config_args(self): + new_c = Client(base_url='url', per_page=10, user='me', repo='myrepo', + verbose='stream') + self.assertEqual(new_c.config['base_url'], 'url') + self.assertEqual(new_c.requester.params['per_page'], 10) + self.assertEqual(new_c.user, 'me') + self.assertEqual(new_c.repo, 'myrepo') + self.assertEqual(new_c.requester.config['verbose'], 'stream') + + @patch.object(requests.sessions.Session, 'request') + def test_PARSE_args_in_request_without_params(self, request_method): + extra = dict(arg1='arg1', arg2='arg2') + self.c.request('', '', data='data', **extra) + request_method.assert_called_with('', self.c.config['base_url'], + data='data', params=extra) + + @patch.object(requests.sessions.Session, 'request') + def test_PARSE_args_in_request_with_params(self, request_method): + extra = dict(arg1='arg1', arg2='arg2') + self.c.request('', '', params=dict(arg0='arg0'), **extra) + request_method.assert_called_with('', self.c.config['base_url'], + params=dict(arg0='arg0', **extra)) + + @patch.object(Client, 'request') + def test_DELEGATES_methods(self, request_method): + self.c.get('') + request_method.assert_called_with('get', '') + self.c.post('') + request_method.assert_called_with('post', '') + self.c.patch('') + request_method.assert_called_with('patch', '') + self.c.put('') + request_method.assert_called_with('put', '') + self.c.delete('') + request_method.assert_called_with('delete', '') + self.c.head('') + request_method.assert_called_with('head', '') + + +@patch.object(requests.sessions.Session, 'request') +class TestClientRaises(TestCase): + + def setUp(self): + self.c = Client() + self.callback = (self.c.request, 'method', 'request') + + def test_raise_NotFound(self, request_method): + request_method.return_value.status_code = 404 + self.assertRaises(NotFound, *self.callback) + + def test_raise_BadRequest(self, request_method): + request_method.return_value.status_code = 400 + self.assertRaises(BadRequest, *self.callback) + + def test_raise_UnprocessableEntity(self, request_method): + request_method.return_value.status_code = 422 + self.assertRaises(UnprocessableEntity, *self.callback) |