diff options
Diffstat (limited to 'tests/test_pandora/test_transport.py')
-rw-r--r-- | tests/test_pandora/test_transport.py | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/tests/test_pandora/test_transport.py b/tests/test_pandora/test_transport.py index 851fa06..28ca6b2 100644 --- a/tests/test_pandora/test_transport.py +++ b/tests/test_pandora/test_transport.py | |||
@@ -16,12 +16,12 @@ class SysCallError(Exception): | |||
16 | 16 | ||
17 | 17 | ||
18 | class TestTransport(TestCase): | 18 | class TestTransport(TestCase): |
19 | |||
20 | def test_test_url_should_return_true_if_request_okay(self): | 19 | def test_test_url_should_return_true_if_request_okay(self): |
21 | transport = t.APITransport(Mock()) | 20 | transport = t.APITransport(Mock()) |
22 | transport._http = Mock() | 21 | transport._http = Mock() |
23 | transport._http.head.return_value = Mock( | 22 | transport._http.head.return_value = Mock( |
24 | status_code=requests.codes.not_found) | 23 | status_code=requests.codes.not_found |
24 | ) | ||
25 | 25 | ||
26 | self.assertFalse(transport.test_url("foo")) | 26 | self.assertFalse(transport.test_url("foo")) |
27 | 27 | ||
@@ -34,7 +34,8 @@ class TestTransport(TestCase): | |||
34 | 34 | ||
35 | time.sleep = Mock() | 35 | time.sleep = Mock() |
36 | client.transport._make_http_request = Mock( | 36 | client.transport._make_http_request = Mock( |
37 | side_effect=SysCallError("error_mock")) | 37 | side_effect=SysCallError("error_mock") |
38 | ) | ||
38 | client.transport._start_request = Mock() | 39 | client.transport._start_request = Mock() |
39 | 40 | ||
40 | client("method") | 41 | client("method") |
@@ -48,7 +49,8 @@ class TestTransport(TestCase): | |||
48 | 49 | ||
49 | time.sleep = Mock() | 50 | time.sleep = Mock() |
50 | client.transport._make_http_request = Mock( | 51 | client.transport._make_http_request = Mock( |
51 | side_effect=PandoraException("error_mock")) | 52 | side_effect=PandoraException("error_mock") |
53 | ) | ||
52 | client.transport._start_request = Mock() | 54 | client.transport._start_request = Mock() |
53 | 55 | ||
54 | client("method") | 56 | client("method") |
@@ -62,7 +64,8 @@ class TestTransport(TestCase): | |||
62 | 64 | ||
63 | time.sleep = Mock() | 65 | time.sleep = Mock() |
64 | client.transport._make_http_request = Mock( | 66 | client.transport._make_http_request = Mock( |
65 | side_effect=InvalidAuthToken("error_mock")) | 67 | side_effect=InvalidAuthToken("error_mock") |
68 | ) | ||
66 | client.transport._start_request = Mock() | 69 | client.transport._start_request = Mock() |
67 | 70 | ||
68 | client._authenticate = Mock() | 71 | client._authenticate = Mock() |
@@ -82,11 +85,11 @@ class TestTransport(TestCase): | |||
82 | transport._http.post.return_value = http_result | 85 | transport._http.post.return_value = http_result |
83 | 86 | ||
84 | self.assertEqual( | 87 | self.assertEqual( |
85 | "bar", transport(t.APITransport.NO_ENCRYPT[0], foo="bar")) | 88 | "bar", transport(t.APITransport.NO_ENCRYPT[0], foo="bar") |
89 | ) | ||
86 | 90 | ||
87 | 91 | ||
88 | class TestTransportSetters(TestCase): | 92 | class TestTransportSetters(TestCase): |
89 | |||
90 | def setUp(self): | 93 | def setUp(self): |
91 | self.cryptor = Mock() | 94 | self.cryptor = Mock() |
92 | self.transport = t.APITransport(self.cryptor) | 95 | self.transport = t.APITransport(self.cryptor) |
@@ -94,27 +97,29 @@ class TestTransportSetters(TestCase): | |||
94 | def test_set_partner(self): | 97 | def test_set_partner(self): |
95 | self.cryptor.decrypt_sync_time.return_value = 456 | 98 | self.cryptor.decrypt_sync_time.return_value = 456 |
96 | 99 | ||
97 | self.transport.set_partner({ | 100 | self.transport.set_partner( |
98 | "syncTime": "123", | 101 | { |
99 | "partnerAuthToken": "partner_auth_token", | 102 | "syncTime": "123", |
100 | "partnerId": "partner_id", | 103 | "partnerAuthToken": "partner_auth_token", |
101 | }) | 104 | "partnerId": "partner_id", |
105 | } | ||
106 | ) | ||
102 | 107 | ||
103 | self.cryptor.decrypt_sync_time.assert_called_with("123") | 108 | self.cryptor.decrypt_sync_time.assert_called_with("123") |
104 | self.assertEqual("partner_auth_token", self.transport.auth_token) | 109 | self.assertEqual("partner_auth_token", self.transport.auth_token) |
105 | self.assertEqual("partner_id", self.transport.partner_id) | 110 | self.assertEqual("partner_id", self.transport.partner_id) |
106 | self.assertEqual( | 111 | self.assertEqual( |
107 | "partner_auth_token", self.transport.partner_auth_token) | 112 | "partner_auth_token", self.transport.partner_auth_token |
113 | ) | ||
108 | 114 | ||
109 | self.transport.start_time = 10 | 115 | self.transport.start_time = 10 |
110 | with patch.object(time, "time", return_value=30): | 116 | with patch.object(time, "time", return_value=30): |
111 | self.assertEqual(476, self.transport.sync_time) | 117 | self.assertEqual(476, self.transport.sync_time) |
112 | 118 | ||
113 | def test_set_user(self): | 119 | def test_set_user(self): |
114 | self.transport.set_user({ | 120 | self.transport.set_user( |
115 | "userId": "user", | 121 | {"userId": "user", "userAuthToken": "auth",} |
116 | "userAuthToken": "auth", | 122 | ) |
117 | }) | ||
118 | 123 | ||
119 | self.assertEqual("user", self.transport.user_id) | 124 | self.assertEqual("user", self.transport.user_id) |
120 | self.assertEqual("auth", self.transport.user_auth_token) | 125 | self.assertEqual("auth", self.transport.user_auth_token) |
@@ -126,7 +131,6 @@ class TestTransportSetters(TestCase): | |||
126 | 131 | ||
127 | 132 | ||
128 | class TestDelayExponential(TestCase): | 133 | class TestDelayExponential(TestCase): |
129 | |||
130 | def test_fixed_delay(self): | 134 | def test_fixed_delay(self): |
131 | self.assertEqual(8, t.delay_exponential(2, 2, 3)) | 135 | self.assertEqual(8, t.delay_exponential(2, 2, 3)) |
132 | 136 | ||
@@ -143,7 +147,6 @@ class TestDelayExponential(TestCase): | |||
143 | 147 | ||
144 | 148 | ||
145 | class TestRetries(TestCase): | 149 | class TestRetries(TestCase): |
146 | |||
147 | def test_no_retries_returns_none(self): | 150 | def test_no_retries_returns_none(self): |
148 | @t.retries(0) | 151 | @t.retries(0) |
149 | def foo(): | 152 | def foo(): |
@@ -178,7 +181,6 @@ class TestParseResponse(TestCase): | |||
178 | 181 | ||
179 | 182 | ||
180 | class TestTransportRequestPrep(TestCase): | 183 | class TestTransportRequestPrep(TestCase): |
181 | |||
182 | def setUp(self): | 184 | def setUp(self): |
183 | self.cryptor = Mock() | 185 | self.cryptor = Mock() |
184 | self.transport = t.APITransport(self.cryptor) | 186 | self.transport = t.APITransport(self.cryptor) |
@@ -207,7 +209,8 @@ class TestTransportRequestPrep(TestCase): | |||
207 | 209 | ||
208 | self.transport._http = http | 210 | self.transport._http = http |
209 | res = self.transport._make_http_request( | 211 | res = self.transport._make_http_request( |
210 | "/url", b"data", {"a": None, "b": "c"}) | 212 | "/url", b"data", {"a": None, "b": "c"} |
213 | ) | ||
211 | 214 | ||
212 | http.post.assert_called_with("/url", data=b"data", params={"b": "c"}) | 215 | http.post.assert_called_with("/url", data=b"data", params={"b": "c"}) |
213 | retval.raise_for_status.assert_called_with() | 216 | retval.raise_for_status.assert_called_with() |
@@ -237,7 +240,8 @@ class TestTransportRequestPrep(TestCase): | |||
237 | 240 | ||
238 | with patch.object(time, "time", return_value=20): | 241 | with patch.object(time, "time", return_value=20): |
239 | val = self.transport._build_data( | 242 | val = self.transport._build_data( |
240 | t.APITransport.NO_ENCRYPT[0], {"a": "b", "c": None}) | 243 | t.APITransport.NO_ENCRYPT[0], {"a": "b", "c": None} |
244 | ) | ||
241 | 245 | ||
242 | val = json.loads(val) | 246 | val = json.loads(val) |
243 | self.assertEqual("b", val["a"]) | 247 | self.assertEqual("b", val["a"]) |
@@ -247,7 +251,6 @@ class TestTransportRequestPrep(TestCase): | |||
247 | 251 | ||
248 | # All Cryptor implementations must pass these test cases unmodified | 252 | # All Cryptor implementations must pass these test cases unmodified |
249 | class CommonCryptorTestCases: | 253 | class CommonCryptorTestCases: |
250 | |||
251 | def test_decrypt_invalid_padding(self): | 254 | def test_decrypt_invalid_padding(self): |
252 | with self.assertRaises(ValueError): | 255 | with self.assertRaises(ValueError): |
253 | data = b"12345678\x00" | 256 | data = b"12345678\x00" |
@@ -267,7 +270,6 @@ class CommonCryptorTestCases: | |||
267 | 270 | ||
268 | 271 | ||
269 | class TestPurePythonBlowfishCryptor(TestCase, CommonCryptorTestCases): | 272 | class TestPurePythonBlowfishCryptor(TestCase, CommonCryptorTestCases): |
270 | |||
271 | def setUp(self): | 273 | def setUp(self): |
272 | # Ugh... blowfish can't even be *imported* in python2 | 274 | # Ugh... blowfish can't even be *imported* in python2 |
273 | if not t.blowfish: | 275 | if not t.blowfish: |
@@ -288,7 +290,6 @@ class TestEncryptor(TestCase): | |||
288 | ENCODED_TIME = "31353037343131313539" | 290 | ENCODED_TIME = "31353037343131313539" |
289 | 291 | ||
290 | class NoopCrypto: | 292 | class NoopCrypto: |
291 | |||
292 | def __init__(self, key): | 293 | def __init__(self, key): |
293 | pass | 294 | pass |
294 | 295 | ||
@@ -303,14 +304,17 @@ class TestEncryptor(TestCase): | |||
303 | 304 | ||
304 | def test_decrypt(self): | 305 | def test_decrypt(self): |
305 | self.assertEqual( | 306 | self.assertEqual( |
306 | {"foo": "bar"}, self.cryptor.decrypt(self.ENCODED_JSON)) | 307 | {"foo": "bar"}, self.cryptor.decrypt(self.ENCODED_JSON) |
308 | ) | ||
307 | 309 | ||
308 | def test_encrypt(self): | 310 | def test_encrypt(self): |
309 | self.assertEqual( | 311 | self.assertEqual( |
310 | self.ENCODED_JSON.encode("ascii"), | 312 | self.ENCODED_JSON.encode("ascii"), |
311 | self.cryptor.encrypt(self.UNENCODED_JSON)) | 313 | self.cryptor.encrypt(self.UNENCODED_JSON), |
314 | ) | ||
312 | 315 | ||
313 | def test_decrypt_sync_time(self): | 316 | def test_decrypt_sync_time(self): |
314 | self.assertEqual( | 317 | self.assertEqual( |
315 | self.EXPECTED_TIME, | 318 | self.EXPECTED_TIME, |
316 | self.cryptor.decrypt_sync_time(self.ENCODED_TIME)) | 319 | self.cryptor.decrypt_sync_time(self.ENCODED_TIME), |
320 | ) | ||