aboutsummaryrefslogtreecommitdiffstats
path: root/github3/tests/handler_test.py
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2011-11-13 23:43:35 +0100
committerDavid Medina <davidmedina9@gmail.com>2011-11-13 23:43:35 +0100
commit6323be600d0c265e40df9f8950602e85ee94955b (patch)
treebc5a1b6945e45ea4908ce36258e87f169fa55954 /github3/tests/handler_test.py
parentAdded limit to querys that return several items (diff)
downloadpython-github3-6323be600d0c265e40df9f8950602e85ee94955b.tar.xz
python-github3-6323be600d0c265e40df9f8950602e85ee94955b.zip
Added handler base test
Diffstat (limited to 'github3/tests/handler_test.py')
-rw-r--r--github3/tests/handler_test.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/github3/tests/handler_test.py b/github3/tests/handler_test.py
index 51cd111..e691182 100644
--- a/github3/tests/handler_test.py
+++ b/github3/tests/handler_test.py
@@ -7,6 +7,8 @@ from github3 import api
from github3.handlers.base import Handler
from github3.exceptions import *
from github3.converters import *
+from github3.models.user import User
+from fixtures import *
import json
import requests
@@ -51,3 +53,54 @@ class TestHandler(TestCase):
data={'some': 'data'})
self.assertTrue(bool1)
self.assertTrue(bool2)
+
+ @patch.object(api.Github, '_request')
+ def test_get_resources(self, request):
+ # Simulating per_page=2 with STUB (it returns two resources)
+ response = request.return_value
+ response.status_code = 200
+ response.headers = {'link': GET_LINK}
+ response.content = self.gh._parser.dumps(GET_RESOURCES)
+ resources = self.handler._get_resources('users', model=User)
+ self.assertFalse(request.called)
+ resources = list(resources)
+ self.assertTrue(request.call_count, 5)
+ request_args = ('GET', 'users')
+ self.assertEquals(request.call_args_list, [
+ (request_args, {'page': 1}),
+ (request_args, {'page': 2}),
+ (request_args, {'page': 3}),
+ (request_args, {'page': 4}),
+ (request_args, {'page': 5})])
+ self.assertEquals(len(resources), 10)
+ self.assertEquals(resources[0].login, 'octocat')
+
+ request.reset_mock()
+ resources = self.handler._get_resources('users', model=User, limit=5)
+ resources = list(resources)
+ self.assertEquals(request.call_count, 3)
+ self.assertEquals(len(resources), 5)
+ request.reset_mock()
+ resources = self.handler._get_resources('users', model=User, limit=4)
+ resources = list(resources)
+ self.assertEquals(request.call_count, 2)
+ self.assertEquals(len(resources), 4)
+ request.reset_mock()
+ resources = self.handler._get_resources('users', model=User, limit=-5)
+ resources = list(resources)
+ self.assertEquals(request.call_count, 3)
+ self.assertEquals(len(resources), 5)
+
+ @patch.object(api.Github, 'get')
+ def test_get_resource(self, get):
+ # Converter test + api(get) test. Half trivial
+ get.return_value = {'login': 'octocat'}
+ model = self.handler._get_resource('test', model=User)
+ self.assertEquals(model.login, 'octocat')
+
+ @patch.object(api.Github, 'post')
+ def test_post_resource(self, post):
+ post.return_value = {'data': 'posted'}
+ data = {'data': 'to_post'}
+ user_new = self.handler._post_resource('test', data=data, model=User)
+ post.assert_called_with('test', data=data)