diff options
author | jcass <john.cass77@gmail.com> | 2015-11-23 09:52:50 +0200 |
---|---|---|
committer | jcass <john.cass77@gmail.com> | 2015-11-23 09:52:50 +0200 |
commit | 5b6bc20f59db8185439cb0aa01f1af7ae0318615 (patch) | |
tree | 5627f6a36196a88dc18bace5ce3d5b9561beedd5 /tests | |
parent | 20daf8ee817dbee1b32a604542ca0438f180be0e (diff) | |
download | pydora-5b6bc20f59db8185439cb0aa01f1af7ae0318615.tar.bz2 pydora-5b6bc20f59db8185439cb0aa01f1af7ae0318615.tar.xz pydora-5b6bc20f59db8185439cb0aa01f1af7ae0318615.zip |
Add test for transport.__call__ decorator.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_pandora/test_clientbuilder.py | 8 | ||||
-rw-r--r-- | tests/test_pandora/test_transport.py | 26 |
2 files changed, 31 insertions, 3 deletions
diff --git a/tests/test_pandora/test_clientbuilder.py b/tests/test_pandora/test_clientbuilder.py index 4dc5b5e..27117b0 100644 --- a/tests/test_pandora/test_clientbuilder.py +++ b/tests/test_pandora/test_clientbuilder.py | |||
@@ -62,6 +62,7 @@ class TestTranslatingDict(TestCase): | |||
62 | 62 | ||
63 | class TestSettingsDictBuilder(TestCase): | 63 | class TestSettingsDictBuilder(TestCase): |
64 | 64 | ||
65 | @classmethod | ||
65 | def _build_minimal(self): | 66 | def _build_minimal(self): |
66 | return cb.SettingsDictBuilder({ | 67 | return cb.SettingsDictBuilder({ |
67 | "DECRYPTION_KEY": "dec", | 68 | "DECRYPTION_KEY": "dec", |
@@ -71,6 +72,7 @@ class TestSettingsDictBuilder(TestCase): | |||
71 | "DEVICE": "dev", | 72 | "DEVICE": "dev", |
72 | }).build() | 73 | }).build() |
73 | 74 | ||
75 | @classmethod | ||
74 | def _build_maximal(self): | 76 | def _build_maximal(self): |
75 | return cb.SettingsDictBuilder({ | 77 | return cb.SettingsDictBuilder({ |
76 | "DECRYPTION_KEY": "dec", | 78 | "DECRYPTION_KEY": "dec", |
@@ -84,12 +86,12 @@ class TestSettingsDictBuilder(TestCase): | |||
84 | }).build() | 86 | }).build() |
85 | 87 | ||
86 | def test_building(self): | 88 | def test_building(self): |
87 | client = self._build_minimal() | 89 | client = TestSettingsDictBuilder._build_minimal() |
88 | 90 | ||
89 | self.assertTrue(isinstance(client, APIClient)) | 91 | self.assertTrue(isinstance(client, APIClient)) |
90 | 92 | ||
91 | def test_default_values(self): | 93 | def test_default_values(self): |
92 | client = self._build_minimal() | 94 | client = TestSettingsDictBuilder._build_minimal() |
93 | 95 | ||
94 | self.assertEqual({}, client.transport._http.proxies) | 96 | self.assertEqual({}, client.transport._http.proxies) |
95 | self.assertEqual(DEFAULT_API_HOST, client.transport.api_host) | 97 | self.assertEqual(DEFAULT_API_HOST, client.transport.api_host) |
@@ -97,7 +99,7 @@ class TestSettingsDictBuilder(TestCase): | |||
97 | client.default_audio_quality) | 99 | client.default_audio_quality) |
98 | 100 | ||
99 | def test_validate_client(self): | 101 | def test_validate_client(self): |
100 | client = self._build_maximal() | 102 | client = TestSettingsDictBuilder._build_maximal() |
101 | expected_proxies = { | 103 | expected_proxies = { |
102 | "http": "proxy.example.com", | 104 | "http": "proxy.example.com", |
103 | "https": "proxy.example.com" | 105 | "https": "proxy.example.com" |
diff --git a/tests/test_pandora/test_transport.py b/tests/test_pandora/test_transport.py new file mode 100644 index 0000000..a9261bd --- /dev/null +++ b/tests/test_pandora/test_transport.py | |||
@@ -0,0 +1,26 @@ | |||
1 | import time | ||
2 | from unittest import TestCase | ||
3 | |||
4 | from OpenSSL.SSL import SysCallError | ||
5 | |||
6 | from pandora.py2compat import Mock, call | ||
7 | |||
8 | from tests.test_pandora.test_clientbuilder import TestSettingsDictBuilder | ||
9 | |||
10 | |||
11 | class TestTransport(TestCase): | ||
12 | |||
13 | def test_call_should_retry_max_times_on_sys_call_error(self): | ||
14 | with self.assertRaises(SysCallError) as context: | ||
15 | |||
16 | client = TestSettingsDictBuilder._build_minimal() | ||
17 | |||
18 | time.sleep = Mock() | ||
19 | client.transport._make_http_request = Mock(side_effect=SysCallError("mock_error")) | ||
20 | client.transport._start_request = Mock() | ||
21 | |||
22 | client("method") | ||
23 | |||
24 | client.transport._start_request.assert_has_calls([call("method")]) | ||
25 | assert client.transport._start_request.call_count == 5 | ||
26 | self.assertTrue('mock_error' in context.exception) | ||