--- /dev/null
+[DEFAULT]
+test_command=${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
+test_id_option=--load-list $IDFILE
+test_list_option=--list
# The code below enables nosetests to work with i18n _() blocks
import __builtin__
setattr(__builtin__, '_', lambda x: x)
-
-import os
-
-from heat.db.sqlalchemy.session import get_engine
-
-
-def reset_db():
- if os.path.exists('heat-test.db'):
- os.remove('heat-test.db')
-
-
-def setup():
- from heat.db import migration
-
- reset_db()
- migration.db_sync()
- engine = get_engine()
- conn = engine.connect()
+++ /dev/null
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-#
-# 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.
from heat.engine import scheduler
from heat.engine.resource import Metadata
from heat.openstack.common import timeutils
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource'])
class AutoScalingTest(unittest.TestCase):
def setUp(self):
self.m = mox.Mox()
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "AutoScalingTest teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.engine import parser
from heat.engine import scheduler
from heat.tests.v1_1 import fakes
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource'])
self.m.StubOutWithMock(eip.ElasticIp, 'nova')
self.m.StubOutWithMock(eip.ElasticIpAssociation, 'nova')
self.m.StubOutWithMock(self.fc.servers, 'get')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "EIPTest teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.engine.resources import instance as instances
from heat.engine import watchrule
from heat.openstack.common import threadgroup
+from heat.tests.utils import setup_dummy_db
tests_dir = os.path.dirname(os.path.realpath(__file__))
class stackCreateTest(unittest.TestCase):
def setUp(self):
self.m = mox.Mox()
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "stackTest teardown complete"
def test_wordpress_single_instance_stack_create(self):
stack = get_wordpress_stack('test_stack', create_context(self.m))
self.m = mox.Mox()
self.username = 'stack_service_create_test_user'
self.tenant = 'stack_service_create_test_tenant'
+ setup_dummy_db()
self.ctx = create_context(self.m, self.username, self.tenant)
self.man = service.EngineService('a-host', 'a-topic')
def setUp(self):
self.m = mox.Mox()
+ setup_dummy_db()
self.ctx = create_context(self.m, self.username, self.tenant)
setup_mocks(self.m, self.stack)
self.m.ReplayAll()
from heat.engine import template
from heat.engine import event
+from heat.tests.utils import setup_dummy_db
from heat.tests import generic_resource as generic_rsrc
self.m = mox.Mox()
+ setup_dummy_db()
self.ctx = context.get_admin_context()
self.m.StubOutWithMock(self.ctx, 'username')
self.ctx.username = self.username
from heat.engine import parser
from heat.engine import scheduler
from heat.openstack.common import uuidutils
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource', 'instance'])
self.fc = fakes.FakeClient()
self.path = os.path.dirname(os.path.realpath(__file__)).\
replace('heat/tests', 'templates')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "instancesTest teardown complete"
def test_instance_create(self):
f = open("%s/WordPress_Single_Instance_gold.template" % self.path)
from heat.engine.resources import loadbalancer
from heat.engine import parser
from heat.engine import scheduler
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource'])
self.fc = fakes.FakeClient()
self.m = mox.Mox()
self.m.StubOutWithMock(loadbalancer.LoadBalancer, 'reload')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "InstanceGroupTest teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.engine.resources import loadbalancer as lb
from heat.engine.resources import wait_condition as wc
from heat.engine.resource import Metadata
+from heat.tests.utils import setup_dummy_db
from heat.tests.v1_1 import fakes
from heat.tests import fakes as test_fakes
cfg.CONF.set_default('heat_waitcondition_server_url',
'http://127.0.0.1:8000/v1/waitcondition')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
from oslo.config import cfg
from heat.tests import fakes
+from heat.tests.utils import setup_dummy_db
from heat.tests.utils import stack_delete_after
from heat.common import identifier
self.m = mox.Mox()
self.m.StubOutWithMock(eventlet, 'sleep')
self.fc = fakes.FakeKeystoneClient()
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
class WaitCondMetadataUpdateTest(unittest.TestCase):
def setUp(self):
self.m = mox.Mox()
+ setup_dummy_db()
self.ctx = context.get_admin_context()
self.ctx.tenant_id = 'test_tenant'
self.fc = fakes.FakeKeystoneClient()
from heat.engine import parser
from heat.engine.resources import stack as nested_stack
from heat.common import urlfetch
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource'])
def setUp(self):
self.m = mox.Mox()
self.m.StubOutWithMock(urlfetch, 'get')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
from heat.engine import parser
from heat.engine import scheduler
from heat.openstack.common import uuidutils
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource', 'instance'])
self.fc = fakes.FakeClient()
self.path = os.path.dirname(os.path.realpath(__file__)).\
replace('heat/tests', 'templates')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "nokeyTest teardown complete"
def test_nokey_create(self):
f = open("%s/WordPress_NoKey.template" % self.path)
from heat.engine import parameters
from heat.engine import template
+from heat.tests.utils import setup_dummy_db
from heat.tests.utils import stack_delete_after
from heat.tests import generic_resource as generic_rsrc
self.m = mox.Mox()
+ setup_dummy_db()
self.ctx = context.get_admin_context()
self.m.StubOutWithMock(self.ctx, 'username')
self.ctx.username = self.username
from heat.engine.resources.quantum import port
from heat.engine.resources.quantum.quantum import QuantumResource as qr
from heat.engine import parser
+from heat.tests.utils import setup_dummy_db
class FakeQuantum():
def setUp(self):
self.m = mox.Mox()
self.m.StubOutWithMock(net.Net, 'quantum')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "QuantumTest teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
self.m.StubOutWithMock(floatingip.FloatingIP, 'quantum')
self.m.StubOutWithMock(floatingip.FloatingIPAssociation, 'quantum')
self.m.StubOutWithMock(port.Port, 'quantum')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
from heat.openstack.common import uuidutils
from heat.tests import generic_resource as generic_rsrc
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource'])
class ResourceTest(unittest.TestCase):
def setUp(self):
self.m = mox.Mox()
+ setup_dummy_db()
self.stack = parser.Stack(None, 'test_stack', parser.Template({}),
stack_id=uuidutils.generate_uuid())
'Type': 'Foo',
'Metadata': {'Test': 'Initial metadata'}
}
+ setup_dummy_db()
ctx = context.get_admin_context()
self.m.StubOutWithMock(ctx, 'username')
ctx.username = 'metadata_test_user'
from heat.engine.resources import s3
from heat.engine import parser
from heat.engine import scheduler
-from utils import skip_if
+from heat.tests.utils import setup_dummy_db
+from heat.tests.utils import skip_if
swiftclient = try_import('swiftclient.client')
self.m.StubOutWithMock(swiftclient.Connection, 'get_auth')
self.container_pattern = 'test_stack-test_resource-[0-9a-z]+'
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "s3Test teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.common import context
from heat.common import template_format
from heat.engine import parser
+from heat.tests.utils import setup_dummy_db
from heat.tests.v1_1 import fakes
from novaclient.v1_1 import security_groups as nova_sg
self.m.StubOutWithMock(nova_sg.SecurityGroupManager, 'delete')
self.m.StubOutWithMock(nova_sg.SecurityGroupManager, 'get')
self.m.StubOutWithMock(nova_sg.SecurityGroupManager, 'list')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
from heat.engine.resources import swift
from heat.engine import parser
from heat.engine import scheduler
+from heat.tests.utils import setup_dummy_db
from heat.tests.utils import skip_if
swiftclient = try_import('swiftclient.client')
self.m.StubOutWithMock(swiftclient.Connection, 'get_auth')
self.container_pattern = 'test_stack-test_resource-[0-9a-z]+'
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "swiftTest teardown complete"
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.common import context
from heat.common import template_format
from heat.engine import parser
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit'])
def setUp(self):
self.longMessage = True
self.maxDiff = None
+ setup_dummy_db()
def load_template(self, file_name):
self.path = os.path.dirname(os.path.realpath(__file__)).\
from heat.engine import scheduler
from heat.engine.resources import user
from heat.tests import fakes
+from heat.tests.utils import setup_dummy_db
import keystoneclient.exceptions
-@attr(tag=['unit', 'resource', 'User'])
-@attr(speed='fast')
-class UserTest(unittest.TestCase):
+class UserPolicyTestCase(unittest.TestCase):
def setUp(self):
config.register_engine_opts()
self.m = mox.Mox()
self.fc = fakes.FakeKeystoneClient(username='test_stack.CfnUser')
cfg.CONF.set_default('heat_stack_user_role', 'stack_user_role')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "UserTest teardown complete"
+
+
+@attr(tag=['unit', 'resource', 'User'])
+@attr(speed='fast')
+class UserTest(UserPolicyTestCase):
def load_template(self, template_name='Rails_Single_Instance.template'):
self.path = os.path.dirname(os.path.realpath(__file__)).\
@attr(tag=['unit', 'resource', 'AccessKey'])
@attr(speed='fast')
-class AccessKeyTest(unittest.TestCase):
- def setUp(self):
- config.register_engine_opts()
- self.m = mox.Mox()
- self.fc = fakes.FakeKeystoneClient(username='test_stack.CfnUser')
- cfg.CONF.set_default('heat_stack_user_role', 'stack_user_role')
-
- def tearDown(self):
- self.m.UnsetStubs()
- print "AccessKey teardown complete"
+class AccessKeyTest(UserPolicyTestCase):
def load_template(self):
self.path = os.path.dirname(os.path.realpath(__file__)).\
@attr(tag=['unit', 'resource', 'AccessPolicy'])
@attr(speed='fast')
-class AccessPolicyTest(unittest.TestCase):
- def setUp(self):
- self.m = mox.Mox()
- self.fc = fakes.FakeKeystoneClient(username='test_stack.CfnUser')
- cfg.CONF.set_default('heat_stack_user_role', 'stack_user_role')
-
- def tearDown(self):
- self.m.UnsetStubs()
- print "UserTest teardown complete"
+class AccessPolicyTest(UserPolicyTestCase):
def load_template(self):
template_name =\
from heat.engine import service
import heat.db.api as db_api
from heat.engine import parser
+from heat.tests.utils import setup_dummy_db
test_template_volumeattach = '''
{
def setUp(self):
self.m = mox.Mox()
self.fc = fakes.FakeClient()
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
- print "volumeTest teardown complete"
def test_validate_volumeattach_valid(self):
t = template_format.parse(test_template_volumeattach % 'vdq')
engine = service.EngineService('a', 't')
res = dict(engine.validate_template(None, t))
- print 'res %s' % res
self.assertEqual(res['Description'], 'test.')
def test_validate_ref_invalid(self):
from heat.engine.resources import volume as vol
from heat.engine import clients
from heat.tests.v1_1 import fakes
+from heat.tests.utils import setup_dummy_db
@attr(tag=['unit', 'resource', 'volume'])
self.m.StubOutWithMock(self.fc.volumes, 'create_server_volume')
self.m.StubOutWithMock(self.fc.volumes, 'delete_server_volume')
self.m.StubOutWithMock(eventlet, 'sleep')
+ setup_dummy_db()
def tearDown(self):
self.m.UnsetStubs()
from heat.common import exception
from heat.common import template_format
from heat.engine import parser
+from heat.tests.utils import setup_dummy_db
try:
from quantumclient.common.exceptions import QuantumClientException
class VPCTestBase(unittest.TestCase):
def setUp(self):
+ setup_dummy_db()
self.m = mox.Mox()
self.m.StubOutWithMock(quantumclient.Client, 'add_interface_router')
self.m.StubOutWithMock(quantumclient.Client, 'add_gateway_router')
from heat.tests import fakes
from heat.tests.utils import stack_delete_after
+from heat.tests.utils import setup_dummy_db
import heat.db.api as db_api
from heat.common import template_format
@attr(tag=['unit', 'resource', 'WaitCondition'])
@attr(speed='slow')
class WaitConditionTest(unittest.TestCase):
+
def setUp(self):
config.register_engine_opts()
+ setup_dummy_db()
self.m = mox.Mox()
self.m.StubOutWithMock(wc.WaitConditionHandle,
'get_status')
'http://127.0.0.1:8000/v1/waitcondition')
self.fc = fakes.FakeKeystoneClient()
+ setup_dummy_db()
self.stack = self.create_stack()
def tearDown(self):
from heat.openstack.common import timeutils
from heat.engine import watchrule
from heat.engine import parser
+from heat.tests import utils
class WatchData:
def setUpClass(cls):
# Create a dummy stack in the DB as WatchRule instances
# must be associated with a stack
+ utils.setup_dummy_db()
ctx = context.get_admin_context()
ctx.username = 'dummyuser'
ctx.tenant_id = '123456'
import nose.plugins.skip as skip
+from heat.db.sqlalchemy.session import get_engine
+from heat.db import migration
class skip_test(object):
to ensure tests clean up their stacks regardless of test success/failure
"""
def wrapped_test(test_cls):
- print "Running test", test_fn.__name__
+ #print "Running test", test_fn.__name__
try:
test_fn(test_cls)
finally:
test_cls.stack.delete()
except AttributeError:
print "Could not delete stack (already deleted?)"
- print "Exited", test_fn.__name__
+ #print "Exited", test_fn.__name__
return wrapped_test
+
+
+def setup_dummy_db():
+ migration.db_sync()
+ engine = get_engine()
+ conn = engine.connect()