|
7 | 7 | except ImportError: # pragma: no cover |
8 | 8 | import unittest # pragma: no cover |
9 | 9 |
|
| 10 | +try: # pragma: no cover |
| 11 | + from unittest import mock # pragma: no cover |
| 12 | +except ImportError: # Python < 3.3 # pragma: no cover |
| 13 | + import mock # pragma: no cover |
| 14 | + |
10 | 15 | from embedly.client import Embedly |
11 | 16 | from embedly.models import Url |
12 | 17 |
|
@@ -182,13 +187,31 @@ def test_regex_url_matches(self): |
182 | 187 | self.assertFalse( |
183 | 188 | client.is_supported('http://yfrog.com/h22eu4j')) |
184 | 189 |
|
| 190 | + @mock.patch.object(Embedly, 'get_services') |
| 191 | + def test_regex_access_triggers_get_services(self, mock_services): |
| 192 | + client = Embedly(self.key) |
| 193 | + client.regex |
| 194 | + |
| 195 | + self.assertTrue(mock_services.called) |
| 196 | + self.assertIsNone(client._regex) |
| 197 | + |
185 | 198 | def test_services_can_be_manually_configured(self): |
186 | 199 | client = Embedly(self.key) |
187 | 200 | client.services = ['nothing', 'like', 'real', 'response', 'data'] |
188 | 201 |
|
189 | 202 | self.assertTrue('nothing' in client.get_services()) |
190 | 203 | self.assertEqual(len(client.get_services()), 5) |
191 | 204 |
|
| 205 | + @mock.patch('httplib2.Http', autospec=True) |
| 206 | + def test_services_remains_empty_on_failed_http(self, MockHttp): |
| 207 | + MockHttp.return_value.request.return_value = ({'status': 500}, "") |
| 208 | + |
| 209 | + client = Embedly(self.key) |
| 210 | + client.get_services() |
| 211 | + |
| 212 | + self.assertFalse(client.services) |
| 213 | + self.assertTrue(MockHttp.return_value.request.called) |
| 214 | + |
192 | 215 | def test_get_services_retrieves_data_and_builds_regex(self): |
193 | 216 | client = Embedly(self.key) |
194 | 217 | client.get_services() |
|
0 commit comments