Add some unit test cases
For class TenantDiscovery in ceilometer/agent/discovery/tenant.py PS: use project instead of tenant. Change-Id: I1efea9f6eb0ee8f03e775253bb37bfd3bd05e2dd
This commit is contained in:
parent
9360743ccb
commit
fc220f59ae
|
@ -20,6 +20,7 @@ from oslotest import base
|
|||
|
||||
from ceilometer.agent.discovery import endpoint
|
||||
from ceilometer.agent.discovery import localnode
|
||||
from ceilometer.agent.discovery import tenant as project
|
||||
from ceilometer.hardware import discovery as hardware
|
||||
from ceilometer import service
|
||||
|
||||
|
@ -70,6 +71,89 @@ class TestLocalnodeDiscovery(base.BaseTestCase):
|
|||
self.assertEqual(['local_host'], self.discovery.discover(self.manager))
|
||||
|
||||
|
||||
class TestProjectDiscovery(base.BaseTestCase):
|
||||
def prepare_mock_data(self):
|
||||
domain_heat = mock.MagicMock()
|
||||
domain_heat.id = '2f42ab40b7ad4140815ef830d816a16c'
|
||||
domain_heat.name = 'heat'
|
||||
domain_heat.enabled = True
|
||||
domain_heat.links = {
|
||||
u'self': u'http://192.168.1.1/identity/v3/domains/'
|
||||
u'2f42ab40b7ad4140815ef830d816a16c'}
|
||||
|
||||
domain_default = mock.MagicMock()
|
||||
domain_default.id = 'default'
|
||||
domain_default.name = 'Default'
|
||||
domain_default.enabled = True
|
||||
domain_default.links = {
|
||||
u'self': u'http://192.168.1.1/identity/v3/domains/default'}
|
||||
|
||||
project_admin = mock.MagicMock()
|
||||
project_admin.id = '2ce92449a23145ef9c539f3327960ce3'
|
||||
project_admin.name = 'admin'
|
||||
project_admin.parent_id = 'default'
|
||||
project_admin.domain_id = 'default'
|
||||
project_admin.is_domain = False
|
||||
project_admin.enabled = True
|
||||
project_admin.links = {
|
||||
u'self': u'http://192.168.4.46/identity/v3/projects/'
|
||||
u'2ce92449a23145ef9c539f3327960ce3'},
|
||||
|
||||
project_service = mock.MagicMock()
|
||||
project_service.id = '9bf93b86bca04e3b815f86a5de083adc'
|
||||
project_service.name = 'service'
|
||||
project_service.parent_id = 'default'
|
||||
project_service.domain_id = 'default'
|
||||
project_service.is_domain = False
|
||||
project_service.enabled = True
|
||||
project_service.links = {
|
||||
u'self': u'http://192.168.4.46/identity/v3/projects/'
|
||||
u'9bf93b86bca04e3b815f86a5de083adc'}
|
||||
|
||||
project_demo = mock.MagicMock()
|
||||
project_demo.id = '57d96b9af18d43bb9d047f436279b0be'
|
||||
project_demo.name = 'demo'
|
||||
project_demo.parent_id = 'default'
|
||||
project_demo.domain_id = 'default'
|
||||
project_demo.is_domain = False
|
||||
project_demo.enabled = True
|
||||
project_demo.links = {
|
||||
u'self': u'http://192.168.4.46/identity/v3/projects/'
|
||||
u'57d96b9af18d43bb9d047f436279b0be'}
|
||||
|
||||
self.domains = [domain_heat, domain_default]
|
||||
self.default_domain_projects = [project_admin, project_service]
|
||||
self.heat_domain_projects = [project_demo]
|
||||
|
||||
def side_effect(self, domain=None):
|
||||
if not domain or domain.name == 'Default':
|
||||
return self.default_domain_projects
|
||||
elif domain.name == 'heat':
|
||||
return self.heat_domain_projects
|
||||
else:
|
||||
return []
|
||||
|
||||
def setUp(self):
|
||||
super(TestProjectDiscovery, self).setUp()
|
||||
CONF = service.prepare_service([], [])
|
||||
self.discovery = project.TenantDiscovery(CONF)
|
||||
self.prepare_mock_data()
|
||||
self.manager = mock.MagicMock()
|
||||
self.manager.keystone.projects.list.side_effect = self.side_effect
|
||||
|
||||
def test_project_discovery_with_domains(self):
|
||||
self.manager.keystone.domains.list.return_value = self.domains
|
||||
result = self.discovery.discover(self.manager)
|
||||
self.assertEqual(len(result), 3)
|
||||
self.assertEqual(self.manager.keystone.projects.list.call_count, 2)
|
||||
|
||||
def test_project_discovery_no_domain(self):
|
||||
self.manager.keystone.domains.list.return_value = []
|
||||
result = self.discovery.discover(self.manager)
|
||||
self.assertEqual(len(result), 2)
|
||||
self.assertEqual(self.manager.keystone.projects.list.call_count, 1)
|
||||
|
||||
|
||||
class TestHardwareDiscovery(base.BaseTestCase):
|
||||
class MockInstance(object):
|
||||
addresses = {'ctlplane': [
|
||||
|
|
Loading…
Reference in New Issue