Show More
@@ -25,6 +25,7 b' import mercurial.ui' | |||||
25 | import mock |
|
25 | import mock | |
26 | import pytest |
|
26 | import pytest | |
27 |
|
27 | |||
|
28 | from vcsserver.hooks import HooksHttpClient | |||
28 | from vcsserver.lib.rc_json import json |
|
29 | from vcsserver.lib.rc_json import json | |
29 | from vcsserver import hooks |
|
30 | from vcsserver import hooks | |
30 |
|
31 | |||
@@ -243,3 +244,43 b' class MirrorHttpServer(object):' | |||||
243 | @property |
|
244 | @property | |
244 | def uri(self): |
|
245 | def uri(self): | |
245 | return '{}:{}'.format(self.ip_address, self.port) |
|
246 | return '{}:{}'.format(self.ip_address, self.port) | |
|
247 | ||||
|
248 | ||||
|
249 | def test_hooks_http_client_init(): | |||
|
250 | hooks_uri = 'http://localhost:8000' | |||
|
251 | client = HooksHttpClient(hooks_uri) | |||
|
252 | assert client.hooks_uri == hooks_uri | |||
|
253 | ||||
|
254 | ||||
|
255 | def test_hooks_http_client_call(): | |||
|
256 | hooks_uri = 'http://localhost:8000' | |||
|
257 | ||||
|
258 | method = 'test_method' | |||
|
259 | extras = {'key': 'value'} | |||
|
260 | ||||
|
261 | with \ | |||
|
262 | mock.patch('vcsserver.hooks.HTTPConnection') as mock_connection,\ | |||
|
263 | mock.patch('msgpack.load') as mock_load: | |||
|
264 | ||||
|
265 | client = HooksHttpClient(hooks_uri) | |||
|
266 | ||||
|
267 | mock_load.return_value = {'result': 'success'} | |||
|
268 | response = mock.MagicMock() | |||
|
269 | response.status = 200 | |||
|
270 | mock_connection.request.side_effect = None | |||
|
271 | mock_connection.getresponse.return_value = response | |||
|
272 | ||||
|
273 | result = client(method, extras) | |||
|
274 | ||||
|
275 | mock_connection.assert_called_with(hooks_uri) | |||
|
276 | mock_connection.return_value.request.assert_called_once() | |||
|
277 | assert result == {'result': 'success'} | |||
|
278 | ||||
|
279 | ||||
|
280 | def test_hooks_http_client_serialize(): | |||
|
281 | method = 'test_method' | |||
|
282 | extras = {'key': 'value'} | |||
|
283 | headers, body = HooksHttpClient._serialize(method, extras) | |||
|
284 | ||||
|
285 | assert headers == {'rc-hooks-protocol': HooksHttpClient.proto} | |||
|
286 | assert msgpack.unpackb(body) == {'method': method, 'extras': extras} |
General Comments 0
You need to be logged in to leave comments.
Login now