aboutsummaryrefslogtreecommitdiffstats
path: root/github3/tests/user_handler_test.py
blob: 9eb3708a6b60e7fa0e54ba38d5683d0cbb20c6ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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