Skip to content

Commit 3d34cb5

Browse files
committed
Fix client tests
1 parent 41855f4 commit 3d34cb5

File tree

1 file changed

+55
-35
lines changed

1 file changed

+55
-35
lines changed
Lines changed: 55 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,57 @@
1+
import re
12
import unittest
23

3-
import pytest
44
import mock
5-
from nose.tools import assert_true, assert_equal # noqa (PEP8 asserts)
5+
from nose.tools import assert_equal # noqa (PEP8 asserts)
66
from addons.rushfiles.client import RushFilesClient
77
import jwt
8-
from requests import Response
98
import copy
109

11-
class FakeResponse():
12-
def __init__(self):
13-
self.response = {
14-
'Data': [
15-
{
16-
'Id': 'fake',
17-
'Name': 'fakeName',
18-
}
19-
],
20-
'Message': 'string',
21-
'ResponseInfo': {
22-
'ResponseCode': 1000,
23-
'Reference': 'string'
10+
class FakeSharesResponse():
11+
def __init__(self, domain = 'example.com'):
12+
self.response = {
13+
'Data': [
14+
{
15+
'Id': 'fake',
16+
'Name': 'fakeName',
17+
'CompanyId': 'fakeCompanyId_'+domain
2418
}
19+
],
20+
'Message': 'string',
21+
'ResponseInfo': {
22+
'ResponseCode': 1000,
23+
'Reference': 'string'
2524
}
25+
}
2626

27-
def json(self):
28-
return copy.deepcopy(self.response)
27+
def json(self):
28+
return copy.deepcopy(self.response)
29+
30+
class FakeCompaniesResponse():
31+
def __init__(self, domain = 'example.com'):
32+
self.response = {
33+
'Data': [
34+
{
35+
'Id': 'fakeCompanyId_'+domain,
36+
'Name': 'fakeCompanyName_'+domain
37+
}
38+
],
39+
'Message': 'string',
40+
'ResponseInfo': {
41+
'ResponseCode': 1000,
42+
'Reference': 'string'
43+
}
44+
}
45+
46+
def json(self):
47+
return copy.deepcopy(self.response)
48+
49+
def args_based_response(method, url, **kwargs):
50+
domain = re.findall(r'clientgateway.(.*)/api', url)[0]
51+
if url.endswith('shares'):
52+
return FakeSharesResponse(domain)
53+
else:
54+
return FakeCompaniesResponse(domain)
2955

3056
class TestClient(unittest.TestCase):
3157

@@ -35,50 +61,44 @@ def setUp(self):
3561

3662
@mock.patch.object(jwt, 'decode')
3763
@mock.patch.object(RushFilesClient, '_make_request')
38-
def test_shares_only_primary_domain(self, mock_response, mock_payload):
39-
fake_response = FakeResponse()
40-
41-
mock_payload.return_value = {
64+
def test_shares_only_primary_domain(self, mock_response, mock_access_token):
65+
mock_access_token.return_value = {
4266
'primary_domain': 'fake.net',
4367
}
44-
mock_response.return_value = fake_response
68+
mock_response.side_effect = args_based_response
4569
res = self.client.shares('fakeId')
4670

4771
assert_equal(len(res), 1)
48-
assert_equal(res[0]['Id'], fake_response.response['Data'][0]['Id'] + '@' + 'fake.net')
49-
assert_equal(res[0]['Name'], fake_response.response['Data'][0]['Name'])
72+
assert_equal(res[0]['Id'], 'fake@fake.net')
73+
assert_equal(res[0]['Name'], 'fakeName @ fakeCompanyName_fake.net')
5074

5175
@mock.patch.object(jwt, 'decode')
5276
@mock.patch.object(RushFilesClient, '_make_request')
5377
def test_shares_one_domain(self,mock_response, mock_payload):
54-
fake_response = FakeResponse()
55-
5678
mock_payload.return_value = {
5779
'primary_domain': 'fake.net',
5880
'domains': 'fake.com'
5981
}
60-
mock_response.return_value = fake_response
82+
mock_response.side_effect = args_based_response
6183
res = self.client.shares('fakeId')
6284

6385
assert_equal(len(res), 2)
64-
assert_equal(res[0]['Id'], fake_response.response['Data'][0]['Id'] + '@' + 'fake.net')
65-
assert_equal(res[0]['Name'], fake_response.response['Data'][0]['Name'])
86+
assert_equal(res[0]['Id'], 'fake@fake.com')
87+
assert_equal(res[0]['Name'], 'fakeName @ fakeCompanyName_fake.com')
6688

6789
@mock.patch.object(jwt, 'decode')
6890
@mock.patch.object(RushFilesClient, '_make_request')
6991
def test_shares_some_domains(self,mock_response, mock_payload):
70-
fake_response = FakeResponse()
71-
7292
mock_payload.return_value = {
7393
'primary_domain': 'fake.net',
7494
'domains': [
7595
'fake.com',
7696
'fake.jp'
7797
]
7898
}
79-
mock_response.return_value = fake_response
99+
mock_response.side_effect = args_based_response
80100
res = self.client.shares('fakeId')
81101

82102
assert_equal(len(res), 3)
83-
assert_equal(res[0]['Id'], fake_response.response['Data'][0]['Id'] + '@' + 'fake.net')
84-
assert_equal(res[0]['Name'], fake_response.response['Data'][0]['Name'])
103+
assert_equal(res[1]['Id'], 'fake@fake.jp')
104+
assert_equal(res[1]['Name'], 'fakeName @ fakeCompanyName_fake.jp')

0 commit comments

Comments
 (0)