Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: infra_libs/test/instrumented_requests_test.py

Issue 2213143002: Add infra_libs as a bootstrap dependency. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Removed the ugly import hack Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: infra_libs/test/instrumented_requests_test.py
diff --git a/infra_libs/test/instrumented_requests_test.py b/infra_libs/test/instrumented_requests_test.py
deleted file mode 100644
index fb6a85d4d832f1d90332730945be5afbe82580c2..0000000000000000000000000000000000000000
--- a/infra_libs/test/instrumented_requests_test.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import datetime
-import unittest
-
-from infra_libs.ts_mon.common import http_metrics
-from infra_libs import instrumented_requests
-from infra_libs import ts_mon
-
-import requests
-import mock
-
-
-class InstrumentedRequestsTest(unittest.TestCase):
- def setUp(self):
- ts_mon.reset_for_unittest()
-
- self.response = requests.Response()
- self.response.elapsed = datetime.timedelta(seconds=2, milliseconds=500)
- self.response.status_code = 200
- self.response.request = requests.PreparedRequest()
- self.response.request.prepare_headers(None)
-
- self.hook = instrumented_requests.instrumentation_hook('foo')
-
- def tearDown(self):
- super(InstrumentedRequestsTest, self).tearDown()
- mock.patch.stopall()
-
- def test_success_status(self):
- self.hook(self.response)
-
- self.assertEquals(1, http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 200}))
- self.assertIsNone(http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 404}))
-
- def test_error_status(self):
- self.response.status_code = 404
- self.hook(self.response)
-
- self.assertIsNone(http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 200}))
- self.assertEquals(1, http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 404}))
-
- def test_response_bytes_none(self):
- self.hook(self.response)
-
- self.assertEquals(0, http_metrics.response_bytes.get(
- {'name': 'foo', 'client': 'requests'}).sum)
-
- def test_response_bytes(self):
- self.response.headers['content-length'] = '7'
- self.hook(self.response)
-
- self.assertEquals(7, http_metrics.response_bytes.get(
- {'name': 'foo', 'client': 'requests'}).sum)
-
- def test_request_bytes_none(self):
- self.hook(self.response)
-
- self.assertEquals(0, http_metrics.request_bytes.get(
- {'name': 'foo', 'client': 'requests'}).sum)
-
- def test_request_bytes(self):
- self.response.request.headers['content-length'] = '5'
- self.hook(self.response)
-
- self.assertEquals(5, http_metrics.request_bytes.get(
- {'name': 'foo', 'client': 'requests'}).sum)
-
- def test_durations(self):
- self.hook(self.response)
-
- self.assertEquals(2500, http_metrics.durations.get(
- {'name': 'foo', 'client': 'requests'}).sum)
-
- @staticmethod
- def _setup_wrap(hooks=None, side_effect=None):
- requests._instrumented_test = mock.Mock()
- if side_effect is not None:
- requests._instrumented_test.side_effect = side_effect
- kwargs = {}
- if hooks:
- kwargs = {'hooks': hooks}
- instrumented_requests._wrap(
- '_instrumented_test', 'foo', 'http://example.com', **kwargs)
- return requests._instrumented_test
-
- def test_wrap(self):
- f = self._setup_wrap()
-
- self.assertTrue(f.called)
- self.assertEquals(('http://example.com',), f.call_args[0])
- self.assertIn('hooks', f.call_args[1])
- self.assertIn('response', f.call_args[1]['hooks'])
- self.assertTrue(hasattr(f.call_args[1]['hooks']['response'], '__call__'))
-
- def test_wrap_merges_hooks(self):
- f = self._setup_wrap(hooks={'foo': lambda: 42})
-
- self.assertTrue(f.called)
- self.assertEquals(('http://example.com',), f.call_args[0])
- self.assertIn('hooks', f.call_args[1])
- self.assertIn('response', f.call_args[1]['hooks'])
- self.assertIn('foo', f.call_args[1]['hooks'])
- self.assertTrue(hasattr(f.call_args[1]['hooks']['response'], '__call__'))
- self.assertEquals(42, f.call_args[1]['hooks']['foo']())
-
- def test_wrap_times_out(self):
- with self.assertRaises(requests.exceptions.ReadTimeout):
- self._setup_wrap(side_effect=requests.exceptions.ReadTimeout)
-
- self.assertIsNone(http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 200}))
- self.assertEquals(1, http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests',
- 'status': http_metrics.STATUS_TIMEOUT}))
-
- def test_wrap_errors_out(self):
- with self.assertRaises(requests.exceptions.ConnectionError):
- self._setup_wrap(side_effect=requests.exceptions.ConnectionError)
-
- self.assertIsNone(http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 200}))
- self.assertEquals(1, http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests',
- 'status': http_metrics.STATUS_ERROR}))
-
- def test_wrap_raises_other_exception(self):
- with self.assertRaises(requests.exceptions.RequestException):
- self._setup_wrap(side_effect=requests.exceptions.RequestException)
-
- self.assertIsNone(http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests', 'status': 200}))
- self.assertEquals(1, http_metrics.response_status.get(
- {'name': 'foo', 'client': 'requests',
- 'status': http_metrics.STATUS_EXCEPTION}))

Powered by Google App Engine
This is Rietveld 408576698