Completed
Push — master ( 7ac7e1...e63902 )
by dotzero
01:43
created

UserResourceTest   B

Complexity

Total Complexity 38

Size/Duplication

Total Lines 200
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 200
rs 8.3999
wmc 38
1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3
#
4
# Copyright (c) 2016 dotzero <[email protected]>
5
#
6
# Permission is hereby granted, free of charge, to any person obtaining a copy
7
# of this software and associated documentation files (the "Software"), to deal
8
# in the Software without restriction, including without limitation the rights
9
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
# copies of the Software, and to permit persons to whom the Software is
11
# furnished to do so, subject to the following conditions:
12
#
13
# The above copyright notice and this permission notice shall be included
14
# in all copies or substantial portions of the Software.
15
#
16
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
# SOFTWARE.
23
24
"""This module contains a object that represents Tests for UserResource"""
25
26
import unittest
27
import sys
28
29
sys.path.append('.')
30
31
import habrahabr
32
from tests.base import BaseTest
33
from tests.base import MockRequest
34
35
36
class UserResourceTest(BaseTest, unittest.TestCase):
37
    """This object represents Tests for UserResource."""
38
39
    def setUp(self):
40
        auth = habrahabr.Auth(client='foo.bar', token='foobar')
41
42
        self.resource = habrahabr.UserResource(auth)
43
        self.resource._request = MockRequest()
44
45
    def test_me(self):
46
        """Test UserResource.me() method"""
47
        self.resource._request.register_uri(
48
            'GET', '/users/me', 'fixture_user.json')
49
50
        response = self.resource.me()
51
52
        self.assertTrue('data' in response)
53
        self.assertTrue('server_time' in response)
54
55
    def test_get(self):
56
        """Test UserResource.get(login) method"""
57
        self.resource._request.register_uri(
58
            'GET', '/users/dotzero', 'fixture_user.json')
59
60
        response = self.resource.get('dotzero')
61
62
        self.assertTrue('data' in response)
63
        self.assertTrue('server_time' in response)
64
65
    def test_get_fail(self):
66
        """Test Fail UserResource.get(login) method"""
67
        with self.assertRaises(AssertionError):
68
            self.resource.get(-1)
69
70
    def test_list(self):
71
        """Test UserResource.list(page) method"""
72
        self.resource._request.register_uri(
73
            'GET', '/users?page=2', 'fixture_user.json')
74
75
        response = self.resource.list(2)
76
77
        self.assertTrue('data' in response)
78
        self.assertTrue('server_time' in response)
79
80
    def test_list_fail(self):
81
        """Test Fail UserResource.list(page) method"""
82
        with self.assertRaises(AssertionError):
83
            self.resource.get(-1)
84
85
    def test_comments(self):
86
        """Test UserResource.comments(login, page) method"""
87
        self.resource._request.register_uri(
88
            'GET', '/users/dotzero/comments?page=2', 'fixture_user.json')
89
90
        response = self.resource.comments('dotzero', 2)
91
92
        self.assertTrue('data' in response)
93
        self.assertTrue('server_time' in response)
94
95
    def test_comments_fail(self):
96
        """Test Fail UserResource.comments(login, page) method"""
97
        with self.assertRaises(AssertionError):
98
            self.resource.comments(-1)
99
100
        with self.assertRaises(AssertionError):
101
            self.resource.comments('foo', 'bar')
102
103
    def test_posts(self):
104
        """Test UserResource.posts(login, page) method"""
105
        self.resource._request.register_uri(
106
            'GET', '/users/dotzero/posts?page=2', 'fixture_post.json')
107
108
        response = self.resource.posts('dotzero', 2)
109
110
        self.assertTrue('data' in response)
111
        self.assertTrue('server_time' in response)
112
113
    def test_posts_fail(self):
114
        """Test Fail UserResource.posts(login, page) method"""
115
        with self.assertRaises(AssertionError):
116
            self.resource.posts(-1)
117
118
        with self.assertRaises(AssertionError):
119
            self.resource.posts('foo', 'bar')
120
121
    def test_hubs(self):
122
        """Test UserResource.hubs(login) method"""
123
        self.resource._request.register_uri(
124
            'GET', '/users/dotzero/hubs', 'fixture_hub.json')
125
126
        response = self.resource.hubs('dotzero')
127
128
        self.assertTrue('data' in response)
129
        self.assertTrue('server_time' in response)
130
131
    def test_hubs_fail(self):
132
        """Test Fail UserResource.hubs(login) method"""
133
        with self.assertRaises(AssertionError):
134
            self.resource.hubs(-1)
135
136
    def test_companies(self):
137
        """Test UserResource.companies(login) method"""
138
        self.resource._request.register_uri(
139
            'GET', '/users/dotzero/companies', 'fixture_company.json')
140
141
        response = self.resource.companies('dotzero')
142
143
        self.assertTrue('data' in response)
144
        self.assertTrue('server_time' in response)
145
146
    def test_companies_fail(self):
147
        """Test Fail UserResource.companies(login) method"""
148
        with self.assertRaises(AssertionError):
149
            self.resource.companies(-1)
150
151
    def test_followers(self):
152
        """Test UserResource.followers(login, page) method"""
153
        self.resource._request.register_uri(
154
            'GET', '/users/dotzero/followers?page=2', 'fixture_post.json')
155
156
        response = self.resource.followers('dotzero', 2)
157
158
        self.assertTrue('data' in response)
159
        self.assertTrue('server_time' in response)
160
161
    def test_followers_fail(self):
162
        """Test Fail UserResource.followers(login, page) method"""
163
        with self.assertRaises(AssertionError):
164
            self.resource.followers(-1)
165
166
    def test_followed(self):
167
        """Test UserResource.followed(login, page) method"""
168
        self.resource._request.register_uri(
169
            'GET', '/users/dotzero/followed?page=2', 'fixture_post.json')
170
171
        response = self.resource.followed('dotzero', 2)
172
173
        self.assertTrue('data' in response)
174
        self.assertTrue('server_time' in response)
175
176
    def test_followed_fail(self):
177
        """Test Fail UserResource.followed(login, page) method"""
178
        with self.assertRaises(AssertionError):
179
            self.resource.followed(-1)
180
181
    def test_vote_plus(self):
182
        """Test UserResource.vote_plus(login) method"""
183
        self.resource._request.register_uri(
184
            'PUT', '/users/dotzero/vote')
185
186
        response = self.resource.vote_plus('dotzero')
187
188
        self.assertEqual(response['ok'], 1)
189
        self.assertTrue('server_time' in response)
190
191
    def test_vote_minus(self):
192
        """Test UserResource.vote_minus(login) method"""
193
        self.resource._request.register_uri(
194
            'DELETE', '/users/dotzero/vote')
195
196
        response = self.resource.vote_minus('dotzero')
197
198
        self.assertEqual(response['ok'], 1)
199
        self.assertTrue('server_time' in response)
200
201
    def test_favorites_posts(self):
202
        """Test UserResource.favorites_posts(login, page) method"""
203
        self.resource._request.register_uri(
204
            'GET', '/users/dotzero/favorites/posts?page=2', 'fixture_post.json')
205
206
        response = self.resource.favorites_posts('dotzero', 2)
207
208
        self.assertTrue('data' in response)
209
        self.assertTrue('server_time' in response)
210
211
    def test_favorites_posts_fail(self):
212
        """Test Fail UserResource.favorites_posts(login, page) method"""
213
        with self.assertRaises(AssertionError):
214
            self.resource.favorites_posts(-1)
215
216
        with self.assertRaises(AssertionError):
217
            self.resource.favorites_posts('foo', 'bar')
218
219
    def test_favorites_comments(self):
220
        """Test UserResource.favorites_comments(login, page) method"""
221
        self.resource._request.register_uri(
222
            'GET', '/users/dotzero/favorites/comments?page=2',
223
            'fixture_post.json')
224
225
        response = self.resource.favorites_comments('dotzero', 2)
226
227
        self.assertTrue('data' in response)
228
        self.assertTrue('server_time' in response)
229
230
    def test_favorites_comments_fail(self):
231
        """Test Fail UserResource.favorites_comments(login, page) method"""
232
        with self.assertRaises(AssertionError):
233
            self.resource.favorites_comments(-1)
234
235
        with self.assertRaises(AssertionError):
236
            self.resource.favorites_comments('foo', 'bar')
237
238
239
if __name__ == '__main__':
240
    unittest.main()
241