def test_get_set_client(self): self.assertEqual(self.chronometer.client, self.client) client = Client('127.0.0.2') chronometer = Chronometer(client) self.assertEqual(chronometer.client, client) chronometer.client = self.client self.assertEqual(chronometer.client, self.client)
def test_sample_rate_configuration(self): self.assertEqual(self.chronometer.rate, 1) chronometer = Chronometer(self.client, 0.3) self.assertEqual(chronometer.rate, 0.3) with self.assertRaises(AssertionError): chronometer.rate = "not a number" with self.assertRaises(AssertionError): chronometer.rate = 2 with self.assertRaises(AssertionError): chronometer.rate = -0.3
def setUp(self): self.client = Client('127.0.0.1') self.request_mock = mock.MagicMock() self.client._request = self.request_mock self.chronometer = Chronometer(self.client)
class TestChronometer(BaseTestCase): def setUp(self): self.client = Client('127.0.0.1') self.request_mock = mock.MagicMock() self.client._request = self.request_mock self.chronometer = Chronometer(self.client) def test_sample_rate_configuration(self): self.assertEqual(self.chronometer.rate, 1) chronometer = Chronometer(self.client, 0.3) self.assertEqual(chronometer.rate, 0.3) with self.assertRaises(AssertionError): chronometer.rate = "not a number" with self.assertRaises(AssertionError): chronometer.rate = 2 with self.assertRaises(AssertionError): chronometer.rate = -0.3 def test_get_set_client(self): self.assertEqual(self.chronometer.client, self.client) client = Client('127.0.0.2') chronometer = Chronometer(client) self.assertEqual(chronometer.client, client) chronometer.client = self.client self.assertEqual(chronometer.client, self.client) def test_since(self): start_time = time() sleep(0.01) self.assertEqual(self.chronometer.since("event", start_time), self.chronometer) self.assertEqual(self.request_mock.call_count, 1) (request, ) = self.request_mock.call_args[0] self.assertRegex('event:[1-9]\d{0,3}\|ms', request) self.request_mock.reset_mock() self.assertEqual(self.chronometer.since("event", start_time, rate=0), self.chronometer) self.assertEqual(self.request_mock.call_count, 0) with self.assertRaises(AssertionError): self.chronometer.since("event", start_time, rate=-0.2) with self.assertRaises(AssertionError): self.chronometer.since("event", start_time, rate=1.01) def test_time_callable(self): self.assertRaises(AssertionError, self.chronometer.time_callable, "event", "I'm not callable") self.assertEqual( self.chronometer.time_callable("event", self.wait_a_while), "waited") self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) request = request_args[0] self.assertRegex(request, "event:[1-9]\d{0,3}\|ms") self.request_mock.reset_mock() self.chronometer.time_callable("low.rate", self.wait_a_while, rate=0.0001) self.assertEqual(self.request_mock.call_count, 0) args_passed = [] def store_args(*args, **kwargs): args_passed.append(args) args_passed.append(kwargs) sleep(0.01) self.request_mock.reset_mock() self.chronometer.time_callable("with_args", store_args, 1, ("arg1", "arg2"), dict(named_arg="named_value")) self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) (request, ) = request_args self.assertRegex(request, "with_args:[1-9]\d{0,3}\|ms") self.assertEqual( args_passed, [("arg1", "arg2"), dict(named_arg="named_value")]) with self.assertRaises(AssertionError): self.chronometer.time_callable("event", self.wait_a_while, rate=-0.2) with self.assertRaises(AssertionError): self.chronometer.time_callable("event", self.wait_a_while, rate=1.01) def test_timer_function_decorator(self): nap_calls = [] @self.chronometer.wrap(name="event") def take_a_nap(): nap_calls.append("nap called") sleep(0.1) take_a_nap() self.assertEqual(nap_calls, ["nap called"]) self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) request = request_args[0] self.assertRegex(request, "event:[1-9]\d{0,3}\|ms") self.request_mock.reset_mock() nap_low_rate_calls = [] @self.chronometer.wrap("event", 0.001) def nap_low_rate(): nap_low_rate_calls.append("low rate called") sleep(0.01) nap_low_rate() self.assertEqual(nap_low_rate_calls, ["low rate called"]) self.assertEqual(self.request_mock.call_count, 0) with self.assertRaises(AssertionError): @self.chronometer.wrap("invalid_rate", -0.1) def wont_be_called(): pass def wait_a_while(self): sleep(0.01) return "waited"
class TestChronometer(BaseTestCase): def setUp(self): self.client = Client('127.0.0.1') self.request_mock = mock.MagicMock() self.client._request = self.request_mock self.chronometer = Chronometer(self.client) def test_sample_rate_configuration(self): self.assertEqual(self.chronometer.rate, 1) chronometer = Chronometer(self.client, 0.3) self.assertEqual(chronometer.rate, 0.3) with self.assertRaises(AssertionError): chronometer.rate = "not a number" with self.assertRaises(AssertionError): chronometer.rate = 2 with self.assertRaises(AssertionError): chronometer.rate = -0.3 def test_get_set_client(self): self.assertEqual(self.chronometer.client, self.client) client = Client('127.0.0.2') chronometer = Chronometer(client) self.assertEqual(chronometer.client, client) chronometer.client = self.client self.assertEqual(chronometer.client, self.client) def test_since(self): start_time = time() sleep(0.01) self.assertEqual(self.chronometer.since("event", start_time), self.chronometer) self.assertEqual(self.request_mock.call_count, 1) (request,) = self.request_mock.call_args[0] self.assertRegex('event:[1-9]\d{0,3}\|ms', request) self.request_mock.reset_mock() self.assertEqual(self.chronometer.since("event", start_time, rate=0), self.chronometer) self.assertEqual(self.request_mock.call_count, 0) with self.assertRaises(AssertionError): self.chronometer.since("event", start_time, rate=-0.2) with self.assertRaises(AssertionError): self.chronometer.since("event", start_time, rate=1.01) def test_time_callable(self): self.assertRaises(AssertionError, self.chronometer.time_callable, "event", "I'm not callable") self.assertEqual( self.chronometer.time_callable("event", self.wait_a_while), "waited" ) self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) request = request_args[0] self.assertRegex(request, "event:[1-9]\d{0,3}\|ms") self.request_mock.reset_mock() self.chronometer.time_callable("low.rate", self.wait_a_while, rate=0.0001) self.assertEqual(self.request_mock.call_count, 0) args_passed = [] def store_args(*args, **kwargs): args_passed.append(args) args_passed.append(kwargs) sleep(0.01) self.request_mock.reset_mock() self.chronometer.time_callable("with_args", store_args, 1, ("arg1", "arg2"), dict(named_arg="named_value")) self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) (request,) = request_args self.assertRegex(request, "with_args:[1-9]\d{0,3}\|ms") self.assertEqual(args_passed, [("arg1", "arg2"), dict(named_arg="named_value")]) with self.assertRaises(AssertionError): self.chronometer.time_callable("event", self.wait_a_while, rate=-0.2) with self.assertRaises(AssertionError): self.chronometer.time_callable("event", self.wait_a_while, rate=1.01) def test_timer_function_decorator(self): nap_calls = [] @self.chronometer.wrap(name="event") def take_a_nap(): nap_calls.append("nap called") sleep(0.1) take_a_nap() self.assertEqual(nap_calls, ["nap called"]) self.assertEqual(self.request_mock.call_count, 1) request_args = self.request_mock.call_args[0] self.assertEqual(len(request_args), 1) request = request_args[0] self.assertRegex(request, "event:[1-9]\d{0,3}\|ms") self.request_mock.reset_mock() nap_low_rate_calls = [] @self.chronometer.wrap("event", 0.001) def nap_low_rate(): nap_low_rate_calls.append("low rate called") sleep(0.01) nap_low_rate() self.assertEqual(nap_low_rate_calls, ["low rate called"]) self.assertEqual(self.request_mock.call_count, 0) with self.assertRaises(AssertionError): @self.chronometer.wrap("invalid_rate", -0.1) def wont_be_called(): pass def wait_a_while(self): sleep(0.01) return "waited"