def test_get_set_client(self):
     self.assertEqual(self.stopwatch.client, self.client)
     client = Client('127.0.0.2')
     stopwatch = Stopwatch(client, "new_watch")
     self.assertEqual(stopwatch.client, client)
     stopwatch.client = self.client
     self.assertEqual(stopwatch.client, self.client)
 def test_get_set_client(self):
     self.assertEqual(self.stopwatch.client, self.client)
     client = Client('127.0.0.2')
     stopwatch = Stopwatch(client, "new_watch")
     self.assertEqual(stopwatch.client, client)
     stopwatch.client = self.client
     self.assertEqual(stopwatch.client, self.client)
 def test_sample_rate_configuration(self):
     self.assertEqual(self.stopwatch.rate, 1)
     stopwatch = Stopwatch(self.client, "new_watch", rate=0.3)
     self.assertEqual(stopwatch.rate, 0.3)
     with self.assertRaises(AssertionError):
         stopwatch.rate = "not a number"
     with self.assertRaises(AssertionError):
         stopwatch.rate = 2
     with self.assertRaises(AssertionError):
         stopwatch.rate = -0.3
 def test_sample_rate_configuration(self):
     self.assertEqual(self.stopwatch.rate, 1)
     stopwatch = Stopwatch(self.client, "new_watch", rate=0.3)
     self.assertEqual(stopwatch.rate, 0.3)
     with self.assertRaises(AssertionError):
         stopwatch.rate = "not a number"
     with self.assertRaises(AssertionError):
         stopwatch.rate = 2
     with self.assertRaises(AssertionError):
         stopwatch.rate = -0.3
    def test_stopwatch_as_context_manager(self):
        original_reference = self.stopwatch.reference
        with self.stopwatch:
            sleep(0.01)
        self.assertGreaterEqual(self.stopwatch.reference, original_reference,
                                "stop watch as context manager resets")
        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, "timed_event:[1-9]\d{0,3}\|ms")

        self.request_mock.reset_mock()
        stopwatch = Stopwatch(self.client, "low_rate", rate=0)
        with stopwatch:
            sleep(0.01)
        self.assertEqual(self.request_mock.call_count, 0)
 def test_name(self):
     stopwatch = Stopwatch(self.client, "new_watch")
     self.assertEqual(stopwatch.name, "new_watch")
     stopwatch.name = self.metric_name
     self.assertEqual(stopwatch.name, self.metric_name)
 def setUp(self):
     self.client = Client('127.0.0.1')
     self.request_mock = mock.MagicMock()
     self.client._request = self.request_mock
     self.metric_name = "timed_event"
     self.stopwatch = Stopwatch(self.client, self.metric_name)
class TestStopwatch(BaseTestCase):
    def setUp(self):
        self.client = Client('127.0.0.1')
        self.request_mock = mock.MagicMock()
        self.client._request = self.request_mock
        self.metric_name = "timed_event"
        self.stopwatch = Stopwatch(self.client, self.metric_name)

    def test_name(self):
        stopwatch = Stopwatch(self.client, "new_watch")
        self.assertEqual(stopwatch.name, "new_watch")
        stopwatch.name = self.metric_name
        self.assertEqual(stopwatch.name, self.metric_name)

    def test_sample_rate_configuration(self):
        self.assertEqual(self.stopwatch.rate, 1)
        stopwatch = Stopwatch(self.client, "new_watch", rate=0.3)
        self.assertEqual(stopwatch.rate, 0.3)
        with self.assertRaises(AssertionError):
            stopwatch.rate = "not a number"
        with self.assertRaises(AssertionError):
            stopwatch.rate = 2
        with self.assertRaises(AssertionError):
            stopwatch.rate = -0.3

    def test_get_set_client(self):
        self.assertEqual(self.stopwatch.client, self.client)
        client = Client('127.0.0.2')
        stopwatch = Stopwatch(client, "new_watch")
        self.assertEqual(stopwatch.client, client)
        stopwatch.client = self.client
        self.assertEqual(stopwatch.client, self.client)

    def test_reset(self):
        original_reference = self.stopwatch.reference
        sleep(0.01)
        self.assertEqual(self.stopwatch.reset(), self.stopwatch)
        self.assertGreaterEqual(self.stopwatch.reference, original_reference)

    def test_send(self):
        sleep(0.01)
        self.stopwatch.send()
        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, "timed_event:[1-9]\d{0,3}\|ms")

        self.request_mock.reset_mock()
        self.stopwatch.send(rate=0)
        self.assertEqual(self.request_mock.call_count, 0)

    def test_stopwatch_as_context_manager(self):
        original_reference = self.stopwatch.reference
        with self.stopwatch:
            sleep(0.01)
        self.assertGreaterEqual(self.stopwatch.reference, original_reference,
                                "stop watch as context manager resets")
        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, "timed_event:[1-9]\d{0,3}\|ms")

        self.request_mock.reset_mock()
        stopwatch = Stopwatch(self.client, "low_rate", rate=0)
        with stopwatch:
            sleep(0.01)
        self.assertEqual(self.request_mock.call_count, 0)
 def test_name(self):
     stopwatch = Stopwatch(self.client, "new_watch")
     self.assertEqual(stopwatch.name, "new_watch")
     stopwatch.name = self.metric_name
     self.assertEqual(stopwatch.name, self.metric_name)
 def setUp(self):
     self.client = Client('127.0.0.1')
     self.request_mock = mock.MagicMock()
     self.client._request = self.request_mock
     self.metric_name = "timed_event"
     self.stopwatch = Stopwatch(self.client, self.metric_name)
class TestStopwatch(BaseTestCase):
    def setUp(self):
        self.client = Client('127.0.0.1')
        self.request_mock = mock.MagicMock()
        self.client._request = self.request_mock
        self.metric_name = "timed_event"
        self.stopwatch = Stopwatch(self.client, self.metric_name)

    def test_name(self):
        stopwatch = Stopwatch(self.client, "new_watch")
        self.assertEqual(stopwatch.name, "new_watch")
        stopwatch.name = self.metric_name
        self.assertEqual(stopwatch.name, self.metric_name)

    def test_sample_rate_configuration(self):
        self.assertEqual(self.stopwatch.rate, 1)
        stopwatch = Stopwatch(self.client, "new_watch", rate=0.3)
        self.assertEqual(stopwatch.rate, 0.3)
        with self.assertRaises(AssertionError):
            stopwatch.rate = "not a number"
        with self.assertRaises(AssertionError):
            stopwatch.rate = 2
        with self.assertRaises(AssertionError):
            stopwatch.rate = -0.3

    def test_get_set_client(self):
        self.assertEqual(self.stopwatch.client, self.client)
        client = Client('127.0.0.2')
        stopwatch = Stopwatch(client, "new_watch")
        self.assertEqual(stopwatch.client, client)
        stopwatch.client = self.client
        self.assertEqual(stopwatch.client, self.client)

    def test_reset(self):
        original_reference = self.stopwatch.reference
        sleep(0.01)
        self.assertEqual(self.stopwatch.reset(), self.stopwatch)
        self.assertGreater(self.stopwatch.reference, original_reference)

    def test_send(self):
        sleep(0.01)
        self.stopwatch.send()
        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, "timed_event:[1-9]\d{0,3}\|ms")

        self.request_mock.reset_mock()
        self.stopwatch.send(rate=0)
        self.assertEqual(self.request_mock.call_count, 0)

    def test_stopwatch_as_context_manager(self):
        original_reference = self.stopwatch.reference
        with self.stopwatch:
            sleep(0.01)
        self.assertGreater(self.stopwatch.reference, original_reference, "stop watch as context manager resets")
        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, "timed_event:[1-9]\d{0,3}\|ms")

        self.request_mock.reset_mock()
        stopwatch = Stopwatch(self.client, "low_rate", rate=0)
        with stopwatch:
            sleep(0.01)
        self.assertEqual(self.request_mock.call_count, 0)