monasca-agent/tests_to_fix/test_web.py

123 lines
4.0 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import unittest
import logging
logger = logging.getLogger(__file__)
from tests.common import get_check
from nose.plugins.skip import SkipTest
class TestWeb(unittest.TestCase):
def setUp(self):
self.apache_config = """
init_config:
instances:
- apache_status_url: http://localhost:9444/server-status
dimensions:
instance:first
- apache_status_url: http://localhost:9444/server-status?auto
dimensions:
instance:second
"""
self.nginx_config = """
init_config:
instances:
- nginx_status_url: http://localhost:44441/nginx_status/
- nginx_status_url: http://localhost:44441/nginx_status/
dimensions:
test:first_one
- nginx_status_url: http://dummyurl:44441/nginx_status/
dimensions:
test1:dummy
- nginx_status_url: http://localhost:44441/nginx_status/
dimensions:
test2:second
"""
self.lighttpd_config = """
init_config:
instances:
- lighttpd_status_url: http://localhost:9449/server-status
dimensions:
instance:first
- lighttpd_status_url: http://localhost:9449/server-status?auto
dimensions:
instance:second
"""
def testApache(self):
raise SkipTest("Requires running apache")
a, instances = get_check('apache', self.apache_config)
a.check(instances[0])
metrics = a.get_metrics()
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'first'})
a.check(instances[1])
metrics = a.get_metrics()
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'second'})
def testApacheOldConfig(self):
a, _ = get_check('apache', self.apache_config)
config = {
'apache_status_url': 'http://example.com/server-status?auto'
}
instances = a.parse_agent_config(config)['instances']
assert instances[0]['apache_status_url'] == config['apache_status_url']
def testNginx(self):
raise SkipTest("Requires running Lighthttpd")
nginx, instances = get_check('nginx', self.nginx_config)
nginx.check(instances[0])
r = nginx.get_metrics()
self.assertEqual(len([t for t in r if t[0] == "nginx.net.connections"]), 1, r)
nginx.check(instances[1])
r = nginx.get_metrics()
self.assertEqual(r[0][3].get('dimensions'), {'test': 'first_one'})
def testNginxOldConfig(self):
nginx, _ = get_check('nginx', self.nginx_config)
config = {
'nginx_status_url_1': 'http://www.example.com/nginx_status:first_tag',
'nginx_status_url_2': 'http://www.example2.com/nginx_status:8080:second_tag',
'nginx_status_url_3': 'http://www.example3.com/nginx_status:third_tag'
}
instances = nginx.parse_agent_config(config)['instances']
self.assertEqual(len(instances), 3)
for i, instance in enumerate(instances):
assert ':'.join(config.values()[i].split(':')[:-1]) == instance['nginx_status_url']
def testLighttpd(self):
raise SkipTest("Requires running Lighthttpd")
l, instances = get_check('lighttpd', self.lighttpd_config)
l.check(instances[0])
metrics = l.get_metrics()
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'first'})
l.check(instances[1])
metrics = l.get_metrics()
self.assertEqual(metrics[0][3].get('dimensions'), {'instance': 'second'})
if __name__ == '__main__':
unittest.main()