Add a called_once property to adapter
Mock has a useful feature called assert_called_once. We don't have the asserts here, but having called_once as a property is an easy way to emulate this. Change-Id: I59dfb53830195e73884fa0ca8a43b1de91fa1425
This commit is contained in:
parent
e42b9828dc
commit
0c6e567ec7
@ -0,0 +1,6 @@
|
||||
---
|
||||
prelude: >
|
||||
Add a called_once property to the mockers.
|
||||
features:
|
||||
- A called_once property was added to the adapter and the mocker. This gives
|
||||
us an easy way to emulate mock's assert_called_once.
|
@ -146,6 +146,10 @@ class _RequestHistoryTracker(object):
|
||||
def called(self):
|
||||
return self.call_count > 0
|
||||
|
||||
@property
|
||||
def called_once(self):
|
||||
return self.call_count == 1
|
||||
|
||||
@property
|
||||
def call_count(self):
|
||||
return len(self.request_history)
|
||||
|
@ -334,9 +334,11 @@ class SessionAdapterTests(base.TestCase):
|
||||
m = self.adapter.register_uri('GET', self.url, text='resp')
|
||||
self.assertEqual(0, m.call_count)
|
||||
self.assertFalse(m.called)
|
||||
self.assertFalse(m.called_once)
|
||||
|
||||
self.assertEqual(0, self.adapter.call_count)
|
||||
self.assertFalse(self.adapter.called)
|
||||
self.assertFalse(m.called_once)
|
||||
|
||||
def test_called_and_called_count(self):
|
||||
m = self.adapter.register_uri('GET', self.url, text='resp')
|
||||
@ -349,9 +351,11 @@ class SessionAdapterTests(base.TestCase):
|
||||
|
||||
self.assertEqual(len(resps), m.call_count)
|
||||
self.assertTrue(m.called)
|
||||
self.assertFalse(m.called_once)
|
||||
|
||||
self.assertEqual(len(resps), self.adapter.call_count)
|
||||
self.assertTrue(self.adapter.called)
|
||||
self.assertFalse(m.called_once)
|
||||
|
||||
def test_adapter_picks_correct_adatper(self):
|
||||
good = '%s://test3.url/' % self.PREFIX
|
||||
@ -436,6 +440,7 @@ class SessionAdapterTests(base.TestCase):
|
||||
resp = self.session.post(self.url, data=data)
|
||||
|
||||
self.assertEqual(1, m.call_count)
|
||||
self.assertTrue(m.called_once)
|
||||
self.assertEqual(dict_resp, resp.json())
|
||||
|
||||
def test_raises_exception(self):
|
||||
@ -445,6 +450,7 @@ class SessionAdapterTests(base.TestCase):
|
||||
self.session.get,
|
||||
self.url)
|
||||
|
||||
self.assertTrue(self.adapter.called_once)
|
||||
self.assertEqual(self.url, self.adapter.last_request.url)
|
||||
|
||||
def test_raises_exception_with_body_args_fails(self):
|
||||
@ -472,6 +478,7 @@ class SessionAdapterTests(base.TestCase):
|
||||
self.assertEqual(text2, resp2.text)
|
||||
|
||||
self.assertEqual(2, self.adapter.call_count)
|
||||
self.assertFalse(self.adapter.called_once)
|
||||
|
||||
self.assertEqual(url1, self.adapter.request_history[0].url)
|
||||
self.assertEqual(url2, self.adapter.request_history[1].url)
|
||||
|
@ -174,6 +174,7 @@ class MockerTests(base.TestCase):
|
||||
self.assertEqual(1, m.call_count)
|
||||
|
||||
self.assertTrue(matcher.called)
|
||||
self.assertTrue(matcher.called_once)
|
||||
self.assertTrue(m.called)
|
||||
|
||||
self.assertEqual(m.request_history, matcher.request_history)
|
||||
@ -202,48 +203,56 @@ class MockerHttpMethodsTests(base.TestCase):
|
||||
resp = requests.request(method, self.URL)
|
||||
self.assertResponse(resp)
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_get(self, m):
|
||||
mock_obj = m.get(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.get(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_options(self, m):
|
||||
mock_obj = m.options(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.options(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_head(self, m):
|
||||
mock_obj = m.head(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.head(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_post(self, m):
|
||||
mock_obj = m.post(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.post(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_put(self, m):
|
||||
mock_obj = m.put(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.put(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_patch(self, m):
|
||||
mock_obj = m.patch(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.patch(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_delete(self, m):
|
||||
mock_obj = m.delete(self.URL, text=self.TEXT)
|
||||
self.assertResponse(requests.delete(self.URL))
|
||||
self.assertTrue(mock_obj.called)
|
||||
self.assertTrue(mock_obj.called_once)
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_mocker_real_http_and_responses(self, m):
|
||||
|
Loading…
x
Reference in New Issue
Block a user