
In all tests cfg.CONF is not (re)initialised correctly By chance in ceilometer , the only method that fail when conf is not initialised is cfg.CONF.find_file. And because some tests do special initialisation (ie: the ones that test ceilometer.service.prepare_service stuff), the method cfg.CONF.find_file works when we run all tests. But if you decide to run only one test (like below) that use find_file it fail because cfg.CONF is not initialised. tox -epy27,pep8 api.v2 Not all configurations opts are impacted but only the CLI opts ones that are set only when cfg.CONF() is called. This change initialise cfg.CONF on each test (but the test can continue to reinitialise it if needed) Change-Id: I37842e945a7e2908e17d5ce886e17047a36818f7
70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- encoding: utf-8 -*-
|
|
#
|
|
# Copyright © 2012 New Dream Network (DreamHost)
|
|
#
|
|
# Author: Doug Hellmann <doug.hellmann@dreamhost.com>
|
|
#
|
|
# 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.
|
|
"""Test base classes.
|
|
"""
|
|
import fixtures
|
|
import mox
|
|
from oslo.config import cfg
|
|
import os.path
|
|
import stubout
|
|
import testtools
|
|
|
|
cfg.CONF.import_opt('pipeline_cfg_file', 'ceilometer.pipeline')
|
|
|
|
|
|
class TestCase(testtools.TestCase):
|
|
|
|
def setUp(self):
|
|
super(TestCase, self).setUp()
|
|
self.mox = mox.Mox()
|
|
self.stubs = stubout.StubOutForTesting()
|
|
self.tempdir = self.useFixture(fixtures.TempDir())
|
|
self.useFixture(fixtures.FakeLogger())
|
|
cfg.CONF([], project='ceilometer')
|
|
|
|
# Set a default location for the pipeline config file so the
|
|
# tests work even if ceilometer is not installed globally on
|
|
# the system.
|
|
cfg.CONF.set_override(
|
|
'pipeline_cfg_file',
|
|
self.path_get('etc/ceilometer/pipeline.yaml'),
|
|
)
|
|
|
|
def path_get(self, project_file=None):
|
|
root = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
|
'..',
|
|
'..',
|
|
)
|
|
)
|
|
if project_file:
|
|
return os.path.join(root, project_file)
|
|
else:
|
|
return root
|
|
|
|
def temp_config_file_path(self, name='ceilometer.conf'):
|
|
return os.path.join(self.tempdir.path, name)
|
|
|
|
def tearDown(self):
|
|
self.mox.UnsetStubs()
|
|
self.stubs.UnsetAll()
|
|
self.stubs.SmartUnsetAll()
|
|
self.mox.VerifyAll()
|
|
cfg.CONF.reset()
|
|
super(TestCase, self).tearDown()
|