Example #1
0
class HelloTestCase(helper.CPWebCase):
    def setup_server():
        cherrypy.tree.mount(hello_app.HelloWorld())
    setup_server = staticmethod(setup_server)

    def setUp(self):
        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_once(self):
        self.getPage('/')
        self.assertStatus(200)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts, {'web.status.2xx': 1, 'web.requests': 1})

    def test_twice(self):
        self.getPage('/')
        self.getPage('/')
        self.assertStatus(200)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {'web.status.2xx': 2, 'web.requests': 2})

    def test_redirect(self):
        self.getPage('/redirect')
        self.assertStatus(303)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {'web.status.3xx': 1, 'web.requests': 1})

    def test_notfound(self):
        self.getPage('/notfound')
        self.assertStatus(404)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {'web.status.4xx': 1, 'web.requests': 1})

    def test_error(self):
        self.getPage('/error')
        self.assertStatus(505)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {'web.status.5xx': 1, 'web.requests': 1})
Example #2
0
class IOTestCase(helper.CPWebCase):
    def setup_server():
        cherrypy.tree.mount(io_app.IOApp())

    setup_server = staticmethod(setup_server)

    def setUp(self):
        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_data(self):
        self.getPage('/sqlite')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency', 'data.sqlite.execute.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(
            self.reporter.counts, {
                'web.status.2xx': 1,
                'web.requests': 1,
                'data.sqlite.execute.requests': 1
            })

    def test_network(self):
        self.getPage('/urllib')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency', 'external.http.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(
            self.reporter.counts, {
                'web.status.2xx': 1,
                'external.http.requests': 1,
                'web.requests': 1,
                'external.http.status.2xx': 1
            })
Example #3
0
class IOTestCase(unittest.TestCase):
    def setUp(self):
        io_app.app.config['TESTING'] = True
        self.app = io_app.app.test_client()

        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_data(self):
        r = self.app.get('/sqlite')

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency', 'data.sqlite.execute.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(
            self.reporter.counts, {
                'web.status.2xx': 1,
                'web.requests': 1,
                'data.sqlite.execute.requests': 1
            })

    def test_network(self):
        r = self.app.get('/urllib2')

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency', 'external.http.response.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(
            self.reporter.counts, {
                'web.status.2xx': 1,
                'external.http.requests': 1,
                'web.requests': 1,
                'external.http.status.2xx': 1
            })
Example #4
0
class IOTestCase(helper.CPWebCase):
    def setup_server():
        cherrypy.tree.mount(io_app.IOApp())
    setup_server = staticmethod(setup_server)

    def setUp(self):
        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_data(self):
        self.getPage('/sqlite')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency',
            'wsgi.response.latency',
            'web.response.latency',
            'data.sqlite.execute.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts,
                         {'web.status.2xx': 1, 'web.requests': 1, 'data.sqlite.execute.requests': 1})

    def test_network(self):
        self.getPage('/urllib')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency',
            'wsgi.response.latency',
            'web.response.latency',
            'external.http.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts,
                         {'web.status.2xx': 1, 'external.http.requests': 1,
                          'web.requests': 1, 'external.http.status.2xx': 1})
Example #5
0
class IOTestCase(unittest.TestCase):
    def setUp(self):
        io_app.app.config['TESTING'] = True
        self.app = io_app.app.test_client()

        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_data(self):
        r = self.app.get('/sqlite')

        expected_gauge_metrics = [
            'app.response.latency',
            'wsgi.response.latency',
            'web.response.latency',
            'data.sqlite.execute.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts,
                         {'web.status.2xx': 1, 'web.requests': 1, 'data.sqlite.execute.requests': 1})

    def test_network(self):
        r = self.app.get('/urllib2')

        expected_gauge_metrics = [
            'app.response.latency',
            'wsgi.response.latency',
            'web.response.latency',
            'external.http.response.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts,
                         {'web.status.2xx': 1, 'external.http.requests': 1,
                          'web.requests': 1, 'external.http.status.2xx': 1})
Example #6
0
class HelloTestCase(unittest.TestCase):
    def setUp(self):
        hello_app.app.config['TESTING'] = True
        self.app = hello_app.app.test_client()

        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_once(self):
        r = self.app.get('/')

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts, {
            'web.status.2xx': 1,
            'web.requests': 1
        })

    def test_twice(self):
        r = self.app.get('/')
        r = self.app.get('/')

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {
            'web.status.2xx': 2,
            'web.requests': 2
        })

    def test_redirect(self):
        # Excluding the trailing will redirect
        r = self.app.get('/dir')

        self.assertEqual(r.status_code, 301)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {
            'web.status.3xx': 1,
            'web.requests': 1
        })

    def test_notfound(self):
        r = self.app.get('/notfound/')

        self.assertEqual(r.status_code, 404)
        self.assertIn("Verify this text!", r.data.decode())

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {
            'web.status.4xx': 1,
            'web.requests': 1
        })

    def test_error(self):
        r = self.app.get('/error/')

        self.assertEqual(r.status_code, 505)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {
            'web.status.5xx': 1,
            'web.requests': 1
        })
Example #7
0
class HelloTestCase(unittest.TestCase):
    def setUp(self):
        hello_app.app.config['TESTING'] = True
        self.app = hello_app.app.test_client()

        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_once(self):
        r = self.app.get('/')

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertGreater(self.reporter.get_gauge_value('wsgi.response.latency'),
                           self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts, {'web.status.2xx': 1, 'web.requests': 1})

    def test_twice(self):
        r = self.app.get('/')
        r = self.app.get('/')

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        self.assertEqual(r.status_code, 200)
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {'web.status.2xx': 2, 'web.requests': 2})

    def test_redirect(self):
        # Excluding the trailing will redirect
        r = self.app.get('/dir')

        self.assertEqual(r.status_code, 301)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {'web.status.3xx': 1, 'web.requests': 1})

    def test_notfound(self):
        r = self.app.get('/notfound/')

        self.assertEqual(r.status_code, 404)
        self.assertIn("Verify this text!", r.data.decode())

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {'web.status.4xx': 1, 'web.requests': 1})

    def test_error(self):
        r = self.app.get('/error/')

        self.assertEqual(r.status_code, 505)

        expected_gauge_metrics = ['app.response.latency', 'wsgi.response.latency', 'web.response.latency']
        six.assertCountEqual(self, self.reporter.get_gauge_names(), expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {'web.status.5xx': 1, 'web.requests': 1})
Example #8
0
class HelloTestCase(helper.CPWebCase):
    def setup_server():
        cherrypy.tree.mount(hello_app.HelloWorld())

    setup_server = staticmethod(setup_server)

    def setUp(self):
        self.reporter = TestTelemetryReporter()
        telemetry.set_reporter(self.reporter)

    def tearDown(self):
        telemetry.set_reporter(None)

    def test_once(self):
        self.getPage('/')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertGreater(
            self.reporter.get_gauge_value('wsgi.response.latency'),
            self.reporter.get_gauge_value('web.response.latency'))

        self.assertEqual(self.reporter.counts, {
            'web.status.2xx': 1,
            'web.requests': 1
        })

    def test_twice(self):
        self.getPage('/')
        self.getPage('/')
        self.assertStatus(200)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {
            'web.status.2xx': 2,
            'web.requests': 2
        })

    def test_redirect(self):
        self.getPage('/redirect')
        self.assertStatus(303)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {
            'web.status.3xx': 1,
            'web.requests': 1
        })

    def test_notfound(self):
        self.getPage('/notfound')
        self.assertStatus(404)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)
        self.assertEqual(self.reporter.counts, {
            'web.status.4xx': 1,
            'web.requests': 1
        })

    def test_error(self):
        self.getPage('/error')
        self.assertStatus(505)

        expected_gauge_metrics = [
            'app.response.latency', 'wsgi.response.latency',
            'web.response.latency'
        ]
        six.assertCountEqual(self, self.reporter.get_gauge_names(),
                             expected_gauge_metrics)

        self.assertEqual(self.reporter.counts, {
            'web.status.5xx': 1,
            'web.requests': 1
        })