aboutsummaryrefslogtreecommitdiffstats
path: root/github3/tests/user_handler_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'github3/tests/user_handler_test.py')
-rw-r--r--github3/tests/user_handler_test.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/github3/tests/user_handler_test.py b/github3/tests/user_handler_test.py
new file mode 100644
index 0000000..9eb3708
--- /dev/null
+++ b/github3/tests/user_handler_test.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+from unittest import TestCase
+from mock import Mock, patch
+from github3 import api
+from fixtures import *
+from github3.models.user import User, AuthUser
+from github3.exceptions import *
+
+
+class TestUserHandler(TestCase):
+ """ Test public api about users """
+
+ def setUp(self):
+ self.gh = api.Github()
+ self.handler = self.gh.users
+
+ def test_set_username(self):
+ handler = self.handler.set_username('test')
+ self.assertEquals(id(handler), id(self.handler))
+ self.assertEquals(handler.username, 'test')
+ model_user = Mock()
+ model_user.login = 'test'
+ handler = self.handler.set_username(model_user)
+ self.assertEquals(handler.username, 'test')
+
+ def test_parse_user(self):
+ model_user = Mock()
+ model_user.login = 'test'
+ self.assertRaises(UserIsAnonymous, self.handler._parse_user, None)
+ user = self.handler._parse_user(model_user)
+ self.assertEquals(user, 'test')
+ user = self.handler._parse_user('test')
+ self.assertEquals(user, 'test')
+ self.assertRaises(UserIsAnonymous, self.handler._parse_user, Mock())
+ self.handler.set_username('octocat')
+ self.assertEquals('octocat', self.handler._parse_user(None))
+ self.assertEquals('octocat', self.handler._parse_user(Mock()))
+ self.assertEquals('test', self.handler._parse_user('test'))
+ self.assertEquals('test', self.handler._parse_user(model_user))
+
+ @patch.object(api.Github, 'get')
+ def test_get(self, get):
+ get.return_value = GET_USER
+ self.assertRaises(UserIsAnonymous, self.handler.get)
+ user = self.handler.get('octocat')
+ self.assertIsInstance(user, User)
+ get.assert_called_with('users/octocat')
+
+ @patch.object(api.Github, '_request')
+ def test_get_followers(self, request):
+ response = request.return_value
+ response.headers = {'link': GET_LINK} # 5 pages
+ response.content = self.gh._parser.dumps(GET_FOLLOWERS)
+ followers = list(self.handler.get_followers('test'))
+ self.assertIsInstance(followers[0], User)
+ pass