aboutsummaryrefslogtreecommitdiffstats
path: root/github3/tests/handler_test.py
blob: 51cd111839f414e6c06af94ad97cc4a2f5bd91c7 (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
#!/usr/bin/env python
# -*- encoding: utf-8 -*-

from mock import Mock, patch
from unittest import TestCase
from github3 import api
from github3.handlers.base import Handler
from github3.exceptions import *
from github3.converters import *
import json
import requests


class TestHandler(TestCase):

    def setUp(self):
        self.gh = api.Github()
        self.handler = Handler(self.gh)

    def test_get_converter(self):
        self.assertIsInstance(self.handler._get_converter(), Modelizer)
        self.assertIsInstance(self.handler._get_converter(converter=Rawlizer),
                              Rawlizer)
        self.handler.converter = Modelizer
        self.assertIsInstance(self.handler._get_converter(), Modelizer)

    def test_bool(self):
        with patch.object(api.Github, 'head') as head:
            response = head.return_value
            response.status_code = 204
            bool1 = self.handler._bool('test')
            head.side_effect = NotFound()
            bool2 = self.handler._bool('test')
        head.assert_called_with('test')
        self.assertTrue(bool1)
        self.assertFalse(bool2)

        with patch.object(api.Github, 'put') as put:
            response = put.return_value
            response.status_code = 204
            booll = self.handler._put('test')
        put.assert_called_with('test', method='put')
        self.assertTrue(booll)

        with patch.object(api.Github, 'delete') as delete:
            response = delete.return_value
            response.content = self.gh._parser.dumps({'data': 'test'})
            response.status_code = 204
            bool1 = self.handler._bool('test', method='delete')
            bool2 = self.handler._bool('test', method='delete',
                                       data={'some': 'data'})
        self.assertTrue(bool1)
        self.assertTrue(bool2)