def test_register_service(self, mock_serv_endpoint_get, mock_client_constructor, mock_log): #Init ##Child mocks service_id = '101' mock_service_create = Mock(id=service_id) endpoint_id = '999' endpoint_region = 'RegionOne' endpoint_public_url = 'http://my.endpoint' mock_endpoint_create = Mock(id=endpoint_id, region=endpoint_region, publicurl=endpoint_public_url) attrs = {'services.create.return_value': mock_service_create, 'endpoints.create.return_value': mock_endpoint_create} mock_keystone_object = Mock(id=1, **attrs) ##return values mock_serv_endpoint_get.return_value = '' mock_client_constructor.return_value = mock_keystone_object #Calls service = Service(MCNApplication(), self.epc_svc_type) service.register_service(self.epc_svc_type) #Asserts mock_serv_endpoint_get.assert_called_once_with(tenant_name=self.SERVICE_TENANT_NAME, token=self.SERVICE_TOKEN, identifier='epc', endpoint=self.DESIGN_URI, url_type='public') mock_client_constructor.assert_called_once_with(tenant_name=self.SERVICE_TENANT_NAME, token=self.SERVICE_TOKEN, auth_url=self.DESIGN_URI) mock_log.assert_called_with( 'Service is now registered with keystone: ID: ' + endpoint_id + ' Region: ' + endpoint_region + ' Public URL: ' + endpoint_public_url + ' Service ID: ' + service_id)