Merge "Add some unit test cases"

This commit is contained in:
Jenkins 2017-07-24 18:06:40 +00:00 committed by Gerrit Code Review
commit 776d872668
1 changed files with 84 additions and 0 deletions

View File

@ -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': [