aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorjcass <john.cass77@gmail.com>2015-11-23 09:52:50 +0200
committerjcass <john.cass77@gmail.com>2015-11-23 09:52:50 +0200
commit5b6bc20f59db8185439cb0aa01f1af7ae0318615 (patch)
tree5627f6a36196a88dc18bace5ce3d5b9561beedd5 /tests
parent20daf8ee817dbee1b32a604542ca0438f180be0e (diff)
downloadpydora-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.py8
-rw-r--r--tests/test_pandora/test_transport.py26
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
63class TestSettingsDictBuilder(TestCase): 63class 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 @@
1import time
2from unittest import TestCase
3
4from OpenSSL.SSL import SysCallError
5
6from pandora.py2compat import Mock, call
7
8from tests.test_pandora.test_clientbuilder import TestSettingsDictBuilder
9
10
11class 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)