Merge "Replace tests.base part8"
This commit is contained in:
commit
78ca7b8333
@ -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):
|
||||
|
@ -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 = []
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user