aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/tests/core/test_client.py
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2012-02-09 01:53:06 +0100
committerDavid Medina <davidmedina9@gmail.com>2012-02-09 01:53:06 +0100
commit3ac7f814cf6279e106dfefcf64a13b0318f959ba (patch)
tree54b9ddcbb55cda9c4de54ed0a641e918cd86a81e /pygithub3/tests/core/test_client.py
parentFix litle bugs (diff)
downloadpython-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.py89
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)