Replace tests.base part8

It is the last step to replace using openstack.common.test.
In this patch is changed for using
openstack.common.test and added needed fixtures in test classes.
Cleaning base.py and deleted TestCase class.

Change-Id: If4b5992de70fb01cf29363243fb7e50196653fff
This commit is contained in:
Vladislav Kuzmin 2013-10-24 15:04:10 +04:00
parent 5c7e3e1e3f
commit 537c60badd
8 changed files with 122 additions and 140 deletions

View File

@ -18,55 +18,12 @@
# under the License.
"""Test base classes.
"""
import fixtures
import functools
from oslo.config import cfg
import os.path
import testtools
from testtools import testcase
from ceilometer.openstack.common import test
from ceilometer.openstack.common import timeutils
from ceilometer.openstack.common.fixture import config
from ceilometer.openstack.common.fixture import moxstubout
cfg.CONF.import_opt('pipeline_cfg_file', 'ceilometer.pipeline')
class TestCase(testtools.TestCase):
def setUp(self):
super(TestCase, self).setUp()
self.tempdir = self.useFixture(fixtures.TempDir())
self.useFixture(fixtures.FakeLogger())
self.useFixture(config.Config())
moxfixture = self.useFixture(moxstubout.MoxStubout())
self.mox = moxfixture.mox
self.stubs = moxfixture.stubs
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)
class BaseTestCase(test.BaseTestCase):

View File

@ -29,8 +29,9 @@ from stevedore.tests import manager as extension_tests
from ceilometer import sample
from ceilometer import pipeline
from ceilometer import agent
from ceilometer.tests import base
from ceilometer import transformer
from ceilometer.openstack.common.fixture import config
from ceilometer.tests import base
default_test_data = sample.Sample(
@ -64,7 +65,7 @@ class TestPollsterException(TestPollster):
raise Exception()
class BaseAgentManagerTestCase(base.TestCase):
class BaseAgentManagerTestCase(base.BaseTestCase):
class Pollster(TestPollster):
samples = []
@ -162,6 +163,11 @@ class BaseAgentManagerTestCase(base.TestCase):
'publishers': ["test"],
}, ]
self.setup_pipeline()
self.CONF = self.useFixture(config.Config()).conf
self.CONF.set_override(
'pipeline_cfg_file',
self.path_get('etc/ceilometer/pipeline.yaml')
)
def tearDown(self):
self.Pollster.samples = []

View File

@ -19,11 +19,11 @@
"""
import mock
from ceilometer.tests import base
from ceilometer.openstack.common import test
from ceilometer.alarm import evaluator
class TestEvaluatorBaseClass(base.TestCase):
class TestEvaluatorBaseClass(test.BaseTestCase):
def setUp(self):
super(TestEvaluatorBaseClass, self).setUp()
self.called = False

View File

@ -19,36 +19,38 @@
"""
import os
from oslo.config import cfg
from ceilometer.api.v1 import app
from ceilometer.api import acl
from ceilometer import service
from ceilometer.tests import base
from ceilometer.openstack.common import fileutils
from ceilometer.openstack.common import test
from ceilometer.openstack.common.fixture import config
class TestApp(base.TestCase):
class TestApp(test.BaseTestCase):
def tearDown(self):
super(TestApp, self).tearDown()
cfg.CONF.reset()
def setUp(self):
super(TestApp, self).setUp()
self.CONF = self.useFixture(config.Config()).conf
def test_keystone_middleware_conf(self):
cfg.CONF.set_override("auth_protocol", "foottp",
group=acl.OPT_GROUP_NAME)
cfg.CONF.set_override("auth_version", "v2.0", group=acl.OPT_GROUP_NAME)
cfg.CONF.set_override("auth_uri", None,
group=acl.OPT_GROUP_NAME)
api_app = app.make_app(cfg.CONF, attach_storage=False)
self.CONF.set_override("auth_protocol", "foottp",
group=acl.OPT_GROUP_NAME)
self.CONF.set_override("auth_version", "v2.0",
group=acl.OPT_GROUP_NAME)
self.CONF.set_override("auth_uri", None,
group=acl.OPT_GROUP_NAME)
api_app = app.make_app(self.CONF, attach_storage=False)
self.assertTrue(api_app.wsgi_app.auth_uri.startswith('foottp'))
def test_keystone_middleware_parse_conffile(self):
tmpfile = self.temp_config_file_path()
with open(tmpfile, "w") as f:
f.write("[%s]\nauth_protocol = barttp" % acl.OPT_GROUP_NAME)
f.write("\nauth_version = v2.0")
content = "[{0}]\nauth_protocol = barttp"\
"\nauth_version = v2.0".format(acl.OPT_GROUP_NAME)
tmpfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
service.prepare_service(['ceilometer-api',
'--config-file=%s' % tmpfile])
api_app = app.make_app(cfg.CONF, attach_storage=False)
api_app = app.make_app(self.CONF, attach_storage=False)
self.assertTrue(api_app.wsgi_app.auth_uri.startswith('barttp'))
os.unlink(tmpfile)

View File

@ -20,48 +20,52 @@
"""
import os
from oslo.config import cfg
from ceilometer.api import app
from ceilometer.api import acl
from ceilometer import service
from ceilometer.openstack.common import fileutils
from ceilometer.openstack.common import gettextutils
from ceilometer.openstack.common.fixture import config
from ceilometer.openstack.common.fixture import moxstubout
from ceilometer.tests import base
from ceilometer.tests import db as tests_db
from .base import FunctionalTest
class TestApp(base.TestCase):
class TestApp(base.BaseTestCase):
def tearDown(self):
super(TestApp, self).tearDown()
cfg.CONF.reset()
def setUp(self):
super(TestApp, self).setUp()
self.CONF = self.useFixture(config.Config()).conf
def test_keystone_middleware_conf(self):
cfg.CONF.set_override("auth_protocol", "foottp",
group=acl.OPT_GROUP_NAME)
cfg.CONF.set_override("auth_version", "v2.0", group=acl.OPT_GROUP_NAME)
cfg.CONF.set_override("pipeline_cfg_file",
self.path_get("etc/ceilometer/pipeline.yaml"))
cfg.CONF.set_override('connection', "log://", group="database")
cfg.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME)
self.CONF.set_override("auth_protocol", "foottp",
group=acl.OPT_GROUP_NAME)
self.CONF.set_override("auth_version", "v2.0",
group=acl.OPT_GROUP_NAME)
self.CONF.set_override("pipeline_cfg_file",
self.path_get("etc/ceilometer/pipeline.yaml"))
self.CONF.set_override('connection', "log://", group="database")
self.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME)
api_app = app.setup_app()
self.assertTrue(api_app.auth_uri.startswith('foottp'))
def test_keystone_middleware_parse_conffile(self):
tmpfile = self.temp_config_file_path()
with open(tmpfile, "w") as f:
f.write("[DEFAULT]\n")
f.write("pipeline_cfg_file = %s\n" %
self.path_get("etc/ceilometer/pipeline.yaml"))
f.write("[%s]\n" % acl.OPT_GROUP_NAME)
f.write("auth_protocol = barttp\n")
f.write("auth_version = v2.0\n")
pipeline_conf = self.path_get("etc/ceilometer/pipeline.yaml")
content = "[DEFAULT]\n"\
"pipeline_cfg_file = {0}\n"\
"[{1}]\n"\
"auth_protocol = barttp\n"\
"auth_version = v2.0\n".format(pipeline_conf,
acl.OPT_GROUP_NAME)
tmpfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
service.prepare_service(['ceilometer-api',
'--config-file=%s' % tmpfile])
cfg.CONF.set_override('connection', "log://", group="database")
self.CONF.set_override('connection', "log://", group="database")
api_app = app.setup_app()
self.assertTrue(api_app.auth_uri.startswith('barttp'))
os.unlink(tmpfile)

View File

@ -23,11 +23,11 @@ from sqlalchemy.types import DATETIME, NUMERIC
from sqlalchemy.dialects.mysql import DECIMAL
from ceilometer import utils
from ceilometer.openstack.common import test
from ceilometer.storage.sqlalchemy import models
from ceilometer.tests import base
class PreciseTimestampTest(base.TestCase):
class PreciseTimestampTest(test.BaseTestCase):
@staticmethod
def fake_dialect(name):

View File

@ -19,21 +19,28 @@
import httplib2
import json
import os
import random
import socket
import subprocess
import time
from ceilometer.tests import base
from ceilometer.openstack.common import fileutils
class BinTestCase(base.TestCase):
class BinTestCase(base.BaseTestCase):
def setUp(self):
super(BinTestCase, self).setUp()
self.tempfile = self.temp_config_file_path()
with open(self.tempfile, 'w') as tmp:
tmp.write("[database]\n")
tmp.write("connection=log://localhost\n")
content = "[database]\n"\
"connection=log://localhost\n"
self.tempfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
def tearDown(self):
super(BinTestCase, self).tearDown()
os.remove(self.tempfile)
def test_dbsync_run(self):
subp = subprocess.Popen(['ceilometer-dbsync',
@ -46,17 +53,21 @@ class BinTestCase(base.TestCase):
self.assertEqual(subp.wait(), 0)
class BinSendCounterTestCase(base.TestCase):
class BinSendCounterTestCase(base.BaseTestCase):
def setUp(self):
super(BinSendCounterTestCase, self).setUp()
self.tempfile = self.temp_config_file_path()
pipeline_cfg_file = self.path_get('etc/ceilometer/pipeline.yaml')
with open(self.tempfile, 'w') as tmp:
tmp.write("[DEFAULT]\n")
tmp.write(
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n")
tmp.write(
"pipeline_cfg_file=%s\n" % pipeline_cfg_file)
content = "[DEFAULT]\n"\
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n"\
"pipeline_cfg_file={0}\n".format(pipeline_cfg_file)
self.tempfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
def tearDown(self):
super(BinSendCounterTestCase, self).tearDown()
os.remove(self.tempfile)
def test_send_counter_run(self):
subp = subprocess.Popen([self.path_get('bin/ceilometer-send-counter'),
@ -66,32 +77,30 @@ class BinSendCounterTestCase(base.TestCase):
self.assertEqual(subp.wait(), 0)
class BinApiTestCase(base.TestCase):
class BinApiTestCase(base.BaseTestCase):
def setUp(self):
super(BinApiTestCase, self).setUp()
self.api_port = random.randint(10000, 11000)
self.http = httplib2.Http()
self.tempfile = self.temp_config_file_path()
pipeline_cfg_file = self.path_get('etc/ceilometer/pipeline.yaml')
policy_file = self.path_get('tests/policy.json')
with open(self.tempfile, 'w') as tmp:
tmp.write("[DEFAULT]\n")
tmp.write(
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n")
tmp.write(
"auth_strategy=noauth\n")
tmp.write(
"debug=true\n")
tmp.write(
"pipeline_cfg_file=%s\n" % pipeline_cfg_file)
tmp.write(
"policy_file=%s\n" % policy_file)
tmp.write("[api]\n")
tmp.write(
"port=%s\n" % self.api_port)
tmp.write("[database]\n")
tmp.write("connection=log://localhost\n")
content = "[DEFAULT]\n"\
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n"\
"auth_strategy=noauth\n"\
"debug=true\n"\
"pipeline_cfg_file={0}\n"\
"policy_file={1}\n"\
"[api]\n"\
"port={2}\n"\
"[database]\n"\
"connection=log://localhost\n".format(pipeline_cfg_file,
policy_file,
self.api_port)
self.tempfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
self.subp = subprocess.Popen(['ceilometer-api',
"--config-file=%s" % self.tempfile])
@ -99,6 +108,7 @@ class BinApiTestCase(base.TestCase):
super(BinApiTestCase, self).tearDown()
self.subp.kill()
self.subp.wait()
os.remove(self.tempfile)
def get_response(self, path):
url = 'http://%s:%d/%s' % ('127.0.0.1', self.api_port, path)

View File

@ -26,9 +26,11 @@ import time
import threading
from ceilometer import service
from ceilometer.tests import base
from ceilometer.openstack.common import fileutils
from ceilometer.openstack.common import test
class ServiceTestCase(base.TestCase):
class ServiceTestCase(test.BaseTestCase):
def test_prepare_service(self):
service.prepare_service([])
@ -60,31 +62,30 @@ class ParseOutput(threading.Thread):
self.thread_stop = True
class ServiceRestartTest(base.TestCase):
class ServiceRestartTest(base.BaseTestCase):
def setUp(self):
super(ServiceRestartTest, self).setUp()
self.tempfile = self.temp_config_file_path()
self.pipeline_cfg_file = self.temp_config_file_path(name=
'pipeline.yaml')
self.pipeline_cfg_file = fileutils.write_to_tempfile(content='',
prefix='pipeline',
suffix='.yaml')
shutil.copy(self.path_get('etc/ceilometer/pipeline.yaml'),
self.pipeline_cfg_file)
self.pipelinecfg_read_from_file()
policy_file = self.path_get('tests/policy.json')
with open(self.tempfile, 'w') as tmp:
tmp.write("[DEFAULT]\n")
tmp.write(
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n")
tmp.write(
"auth_strategy=noauth\n")
tmp.write(
"debug=true\n")
tmp.write(
"pipeline_cfg_file=%s\n" % self.pipeline_cfg_file)
tmp.write(
"policy_file=%s\n" % policy_file)
tmp.write("[database]\n")
tmp.write("connection=log://localhost\n")
content = "[DEFAULT]\n"\
"rpc_backend=ceilometer.openstack.common.rpc.impl_fake\n"\
"auth_strategy=noauth\n"\
"debug=true\n"\
"pipeline_cfg_file={0}\n"\
"policy_file={1}\n"\
"[database]\n"\
"connection=log://localhost\n".format(self.pipeline_cfg_file,
policy_file)
self.tempfile = fileutils.write_to_tempfile(content=content,
prefix='ceilometer',
suffix='.conf')
def _modify_pipeline_file(self):
with open(self.pipeline_cfg_file, 'w') as pipe_fd:
@ -100,6 +101,8 @@ class ServiceRestartTest(base.TestCase):
super(ServiceRestartTest, self).tearDown()
self.sub.kill()
self.sub.wait()
os.remove(self.pipeline_cfg_file)
os.remove(self.tempfile)
@staticmethod
def _check_process_alive(pid):