Files
monasca-agent/tests/test_couchbase.py

71 lines
2.8 KiB
Python

import unittest
from tests.common import load_check
from nose.plugins.attrib import attr
from nose.plugins.skip import SkipTest
class CouchbaseTestCase(unittest.TestCase):
def setUp(self):
self.config = {
'instances': [{
'server': 'http://localhost:8091',
'user': 'Administrator',
'password': 'password',
}]
}
self.agentConfig = {
'version': '0.1',
'api_key': 'toto'
}
self.check = load_check('couchbase', self.config, self.agentConfig)
@attr('couchbase')
def test_camel_case_to_joined_lower(self):
test_pairs = {
'camelCase' : 'camel_case',
'FirstCapital' : 'first_capital',
'joined_lower' : 'joined_lower',
'joined_Upper1' : 'joined_upper1',
'Joined_upper2' : 'joined_upper2',
'Joined_Upper3' : 'joined_upper3',
'_leading_Underscore' : 'leading_underscore',
'Trailing_Underscore_' : 'trailing_underscore',
'DOubleCAps' : 'd_ouble_c_aps',
'@@@super--$$-Funky__$__$$%' : 'super_funky',
}
for test_input, expected_output in test_pairs.items():
test_output = self.check.camel_case_to_joined_lower(test_input)
self.assertEqual(test_output, expected_output,
'Input was %s, expected output was %s, actual output was %s' % (test_input, expected_output, test_output))
@attr('couchbase')
def test_metrics_casing(self):
raise SkipTest("Skipped for now as it's hard to configure couchbase on travis")
self.check.check(self.config['instances'][0])
metrics = self.check.get_metrics()
camel_cased_metrics = [u'couchbase.hdd.used_by_data',
u'couchbase.ram.used_by_data',
u'couchbase.ram.quota_total',
u'couchbase.ram.quota_used',
]
found_metrics = [k[0] for k in metrics if k[0] in camel_cased_metrics]
self.assertEqual(found_metrics.sort(), camel_cased_metrics.sort())
@attr('couchbase')
def test_metrics(self):
raise SkipTest("Skipped for now as it's hard to configure couchbase on travis")
self.check.check(self.config['instances'][0])
metrics = self.check.get_metrics()
self.assertTrue(type(metrics) == type([]), metrics)
self.assertTrue(len(metrics) > 3)
self.assertTrue(len([k for k in metrics if "instance:http://localhost:8091" in k[3]['tags']]) > 3)
self.assertTrue(len([k for k in metrics if -1 != k[0].find('by_node')]) > 1, 'Unable to fund any per node metrics')
self.assertTrue(len([k for k in metrics if -1 != k[0].find('by_bucket')]) > 1, 'Unable to fund any per node metrics')