Merged trunk
This commit is contained in:
@@ -105,18 +105,7 @@ def main():
|
|||||||
logging.setup()
|
logging.setup()
|
||||||
interface = os.environ.get('DNSMASQ_INTERFACE', 'br0')
|
interface = os.environ.get('DNSMASQ_INTERFACE', 'br0')
|
||||||
if int(os.environ.get('TESTING', '0')):
|
if int(os.environ.get('TESTING', '0')):
|
||||||
FLAGS.fake_rabbit = True
|
from nova.tests import fake_flags
|
||||||
FLAGS.network_size = 16
|
|
||||||
FLAGS.connection_type = 'fake'
|
|
||||||
FLAGS.fake_network = True
|
|
||||||
FLAGS.auth_driver = 'nova.auth.dbdriver.DbDriver'
|
|
||||||
FLAGS.num_networks = 5
|
|
||||||
path = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
|
||||||
'..',
|
|
||||||
'nova',
|
|
||||||
'tests',
|
|
||||||
'tests.sqlite'))
|
|
||||||
FLAGS.sql_connection = 'sqlite:///%s' % path
|
|
||||||
action = argv[1]
|
action = argv[1]
|
||||||
if action in ['add', 'del', 'old']:
|
if action in ['add', 'del', 'old']:
|
||||||
mac = argv[2]
|
mac = argv[2]
|
||||||
|
|||||||
@@ -324,8 +324,9 @@ DEFINE_string('state_path', os.path.join(os.path.dirname(__file__), '../'),
|
|||||||
DEFINE_string('logdir', None, 'output to a per-service log file in named '
|
DEFINE_string('logdir', None, 'output to a per-service log file in named '
|
||||||
'directory')
|
'directory')
|
||||||
|
|
||||||
|
DEFINE_string('sqlite_db', 'nova.sqlite', 'file name for sqlite')
|
||||||
DEFINE_string('sql_connection',
|
DEFINE_string('sql_connection',
|
||||||
'sqlite:///$state_path/nova.sqlite',
|
'sqlite:///$state_path/$sqlite_db',
|
||||||
'connection string for sql database')
|
'connection string for sql database')
|
||||||
DEFINE_integer('sql_idle_timeout',
|
DEFINE_integer('sql_idle_timeout',
|
||||||
3600,
|
3600,
|
||||||
|
|||||||
32
nova/test.py
32
nova/test.py
@@ -22,26 +22,28 @@ Allows overriding of flags for use of fakes,
|
|||||||
and some black magic for inline callbacks.
|
and some black magic for inline callbacks.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
import uuid
|
import uuid
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import mox
|
import mox
|
||||||
|
import shutil
|
||||||
import stubout
|
import stubout
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
from nova import db
|
from nova import db
|
||||||
from nova import fakerabbit
|
from nova import fakerabbit
|
||||||
from nova import flags
|
from nova import flags
|
||||||
from nova import log as logging
|
|
||||||
from nova import rpc
|
from nova import rpc
|
||||||
from nova import service
|
from nova import service
|
||||||
from nova.network import manager as network_manager
|
|
||||||
|
|
||||||
|
|
||||||
FLAGS = flags.FLAGS
|
FLAGS = flags.FLAGS
|
||||||
flags.DEFINE_bool('flush_db', True,
|
flags.DEFINE_string('sqlite_clean_db', 'clean.sqlite',
|
||||||
'Flush the database before running fake tests')
|
'File name of clean sqlite db')
|
||||||
flags.DEFINE_bool('fake_tests', True,
|
flags.DEFINE_bool('fake_tests', True,
|
||||||
'should we use everything for testing')
|
'should we use everything for testing')
|
||||||
|
|
||||||
@@ -66,15 +68,8 @@ class TestCase(unittest.TestCase):
|
|||||||
# now that we have some required db setup for the system
|
# now that we have some required db setup for the system
|
||||||
# to work properly.
|
# to work properly.
|
||||||
self.start = datetime.datetime.utcnow()
|
self.start = datetime.datetime.utcnow()
|
||||||
ctxt = context.get_admin_context()
|
shutil.copyfile(os.path.join(FLAGS.state_path, FLAGS.sqlite_clean_db),
|
||||||
if db.network_count(ctxt) != 5:
|
os.path.join(FLAGS.state_path, FLAGS.sqlite_db))
|
||||||
network_manager.VlanManager().create_networks(ctxt,
|
|
||||||
FLAGS.fixed_range,
|
|
||||||
5, 16,
|
|
||||||
FLAGS.fixed_range_v6,
|
|
||||||
FLAGS.vlan_start,
|
|
||||||
FLAGS.vpn_start,
|
|
||||||
)
|
|
||||||
|
|
||||||
# emulate some of the mox stuff, we can't use the metaclass
|
# emulate some of the mox stuff, we can't use the metaclass
|
||||||
# because it screws with our generators
|
# because it screws with our generators
|
||||||
@@ -96,17 +91,6 @@ class TestCase(unittest.TestCase):
|
|||||||
self.mox.VerifyAll()
|
self.mox.VerifyAll()
|
||||||
super(TestCase, self).tearDown()
|
super(TestCase, self).tearDown()
|
||||||
finally:
|
finally:
|
||||||
try:
|
|
||||||
# Clean up any ips associated during the test.
|
|
||||||
ctxt = context.get_admin_context()
|
|
||||||
db.fixed_ip_disassociate_all_by_timeout(ctxt, FLAGS.host,
|
|
||||||
self.start)
|
|
||||||
db.network_disassociate_all(ctxt)
|
|
||||||
|
|
||||||
db.security_group_destroy_all(ctxt)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Clean out fake_rabbit's queue if we used it
|
# Clean out fake_rabbit's queue if we used it
|
||||||
if FLAGS.fake_rabbit:
|
if FLAGS.fake_rabbit:
|
||||||
fakerabbit.reset_all()
|
fakerabbit.reset_all()
|
||||||
|
|||||||
@@ -37,5 +37,30 @@ setattr(__builtin__, '_', lambda x: x)
|
|||||||
|
|
||||||
|
|
||||||
def setup():
|
def setup():
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
from nova import context
|
||||||
|
from nova import flags
|
||||||
from nova.db import migration
|
from nova.db import migration
|
||||||
|
from nova.network import manager as network_manager
|
||||||
|
from nova.tests import fake_flags
|
||||||
|
|
||||||
|
FLAGS = flags.FLAGS
|
||||||
|
|
||||||
|
testdb = os.path.join(FLAGS.state_path, FLAGS.sqlite_db)
|
||||||
|
if os.path.exists(testdb):
|
||||||
|
os.unlink(testdb)
|
||||||
migration.db_sync()
|
migration.db_sync()
|
||||||
|
ctxt = context.get_admin_context()
|
||||||
|
network_manager.VlanManager().create_networks(ctxt,
|
||||||
|
FLAGS.fixed_range,
|
||||||
|
FLAGS.num_networks,
|
||||||
|
FLAGS.network_size,
|
||||||
|
FLAGS.fixed_range_v6,
|
||||||
|
FLAGS.vlan_start,
|
||||||
|
FLAGS.vpn_start,
|
||||||
|
)
|
||||||
|
|
||||||
|
cleandb = os.path.join(FLAGS.state_path, FLAGS.sqlite_clean_db)
|
||||||
|
shutil.copyfile(testdb, cleandb)
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ FLAGS.auth_driver = 'nova.auth.dbdriver.DbDriver'
|
|||||||
flags.DECLARE('network_size', 'nova.network.manager')
|
flags.DECLARE('network_size', 'nova.network.manager')
|
||||||
flags.DECLARE('num_networks', 'nova.network.manager')
|
flags.DECLARE('num_networks', 'nova.network.manager')
|
||||||
flags.DECLARE('fake_network', 'nova.network.manager')
|
flags.DECLARE('fake_network', 'nova.network.manager')
|
||||||
FLAGS.network_size = 16
|
FLAGS.network_size = 8
|
||||||
FLAGS.num_networks = 5
|
FLAGS.num_networks = 2
|
||||||
FLAGS.fake_network = True
|
FLAGS.fake_network = True
|
||||||
flags.DECLARE('num_shelves', 'nova.volume.driver')
|
flags.DECLARE('num_shelves', 'nova.volume.driver')
|
||||||
flags.DECLARE('blades_per_shelf', 'nova.volume.driver')
|
flags.DECLARE('blades_per_shelf', 'nova.volume.driver')
|
||||||
@@ -39,5 +39,5 @@ FLAGS.num_shelves = 2
|
|||||||
FLAGS.blades_per_shelf = 4
|
FLAGS.blades_per_shelf = 4
|
||||||
FLAGS.iscsi_num_targets = 8
|
FLAGS.iscsi_num_targets = 8
|
||||||
FLAGS.verbose = True
|
FLAGS.verbose = True
|
||||||
FLAGS.sql_connection = 'sqlite:///tests.sqlite'
|
FLAGS.sqlite_db = "tests.sqlite"
|
||||||
FLAGS.use_ipv6 = True
|
FLAGS.use_ipv6 = True
|
||||||
|
|||||||
@@ -311,4 +311,5 @@ class S3APITestCase(test.TestCase):
|
|||||||
self.auth_manager.delete_user('admin')
|
self.auth_manager.delete_user('admin')
|
||||||
self.auth_manager.delete_project('admin')
|
self.auth_manager.delete_project('admin')
|
||||||
stop_listening = defer.maybeDeferred(self.listening_port.stopListening)
|
stop_listening = defer.maybeDeferred(self.listening_port.stopListening)
|
||||||
|
super(S3APITestCase, self).tearDown()
|
||||||
return defer.DeferredList([stop_listening])
|
return defer.DeferredList([stop_listening])
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class DirectTestCase(test.TestCase):
|
|||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
direct.ROUTES = {}
|
direct.ROUTES = {}
|
||||||
|
super(DirectTestCase, self).tearDown()
|
||||||
|
|
||||||
def test_delegated_auth(self):
|
def test_delegated_auth(self):
|
||||||
req = webob.Request.blank('/fake/context')
|
req = webob.Request.blank('/fake/context')
|
||||||
|
|||||||
@@ -42,15 +42,13 @@ class NetworkTestCase(test.TestCase):
|
|||||||
# flags in the corresponding section in nova-dhcpbridge
|
# flags in the corresponding section in nova-dhcpbridge
|
||||||
self.flags(connection_type='fake',
|
self.flags(connection_type='fake',
|
||||||
fake_call=True,
|
fake_call=True,
|
||||||
fake_network=True,
|
fake_network=True)
|
||||||
network_size=16,
|
|
||||||
num_networks=5)
|
|
||||||
self.manager = manager.AuthManager()
|
self.manager = manager.AuthManager()
|
||||||
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
||||||
self.projects = []
|
self.projects = []
|
||||||
self.network = utils.import_object(FLAGS.network_manager)
|
self.network = utils.import_object(FLAGS.network_manager)
|
||||||
self.context = context.RequestContext(project=None, user=self.user)
|
self.context = context.RequestContext(project=None, user=self.user)
|
||||||
for i in range(5):
|
for i in range(FLAGS.num_networks):
|
||||||
name = 'project%s' % i
|
name = 'project%s' % i
|
||||||
project = self.manager.create_project(name, 'netuser', name)
|
project = self.manager.create_project(name, 'netuser', name)
|
||||||
self.projects.append(project)
|
self.projects.append(project)
|
||||||
@@ -195,7 +193,7 @@ class NetworkTestCase(test.TestCase):
|
|||||||
first = self._create_address(0)
|
first = self._create_address(0)
|
||||||
lease_ip(first)
|
lease_ip(first)
|
||||||
instance_ids = []
|
instance_ids = []
|
||||||
for i in range(1, 5):
|
for i in range(1, FLAGS.num_networks):
|
||||||
instance_ref = self._create_instance(i, mac=utils.generate_mac())
|
instance_ref = self._create_instance(i, mac=utils.generate_mac())
|
||||||
instance_ids.append(instance_ref['id'])
|
instance_ids.append(instance_ref['id'])
|
||||||
address = self._create_address(i, instance_ref['id'])
|
address = self._create_address(i, instance_ref['id'])
|
||||||
|
|||||||
@@ -207,9 +207,9 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
db.instance_destroy(user_context, instance_ref['id'])
|
db.instance_destroy(user_context, instance_ref['id'])
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(LibvirtConnTestCase, self).tearDown()
|
|
||||||
self.manager.delete_project(self.project)
|
self.manager.delete_project(self.project)
|
||||||
self.manager.delete_user(self.user)
|
self.manager.delete_user(self.user)
|
||||||
|
super(LibvirtConnTestCase, self).tearDown()
|
||||||
|
|
||||||
|
|
||||||
class IptablesFirewallTestCase(test.TestCase):
|
class IptablesFirewallTestCase(test.TestCase):
|
||||||
@@ -390,6 +390,7 @@ class NWFilterTestCase(test.TestCase):
|
|||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.manager.delete_project(self.project)
|
self.manager.delete_project(self.project)
|
||||||
self.manager.delete_user(self.user)
|
self.manager.delete_user(self.user)
|
||||||
|
super(NWFilterTestCase, self).tearDown()
|
||||||
|
|
||||||
def test_cidr_rule_nwfilter_xml(self):
|
def test_cidr_rule_nwfilter_xml(self):
|
||||||
cloud_controller = cloud.CloudController()
|
cloud_controller = cloud.CloudController()
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ class XenAPIVMTestCase(test.TestCase):
|
|||||||
stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests)
|
stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests)
|
||||||
stubs.stubout_get_this_vm_uuid(self.stubs)
|
stubs.stubout_get_this_vm_uuid(self.stubs)
|
||||||
stubs.stubout_stream_disk(self.stubs)
|
stubs.stubout_stream_disk(self.stubs)
|
||||||
|
stubs.stubout_is_vdi_pv(self.stubs)
|
||||||
self.stubs.Set(VMOps, 'reset_network', reset_network)
|
self.stubs.Set(VMOps, 'reset_network', reset_network)
|
||||||
glance_stubs.stubout_glance_client(self.stubs,
|
glance_stubs.stubout_glance_client(self.stubs,
|
||||||
glance_stubs.FakeGlance)
|
glance_stubs.FakeGlance)
|
||||||
|
|||||||
@@ -130,6 +130,12 @@ def stubout_stream_disk(stubs):
|
|||||||
stubs.Set(vm_utils, '_stream_disk', f)
|
stubs.Set(vm_utils, '_stream_disk', f)
|
||||||
|
|
||||||
|
|
||||||
|
def stubout_is_vdi_pv(stubs):
|
||||||
|
def f(_1):
|
||||||
|
return False
|
||||||
|
stubs.Set(vm_utils, '_is_vdi_pv', f)
|
||||||
|
|
||||||
|
|
||||||
class FakeSessionForVMTests(fake.SessionBase):
|
class FakeSessionForVMTests(fake.SessionBase):
|
||||||
""" Stubs out a XenAPISession for VM tests """
|
""" Stubs out a XenAPISession for VM tests """
|
||||||
def __init__(self, uri):
|
def __init__(self, uri):
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ import unittest
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from nose import config
|
from nose import config
|
||||||
from nose import result
|
|
||||||
from nose import core
|
from nose import core
|
||||||
|
from nose import result
|
||||||
|
|
||||||
from nova import log as logging
|
from nova import log as logging
|
||||||
from nova.tests import fake_flags
|
from nova.tests import fake_flags
|
||||||
@@ -280,10 +280,6 @@ class NovaTestRunner(core.TextTestRunner):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logging.setup()
|
logging.setup()
|
||||||
testdir = os.path.abspath(os.path.join("nova", "tests"))
|
|
||||||
testdb = os.path.join(testdir, "tests.sqlite")
|
|
||||||
if os.path.exists(testdb):
|
|
||||||
os.unlink(testdb)
|
|
||||||
# If any argument looks like a test name but doesn't have "nova.tests" in
|
# If any argument looks like a test name but doesn't have "nova.tests" in
|
||||||
# front of it, automatically add that so we don't have to type as much
|
# front of it, automatically add that so we don't have to type as much
|
||||||
argv = []
|
argv = []
|
||||||
@@ -293,6 +289,7 @@ if __name__ == '__main__':
|
|||||||
else:
|
else:
|
||||||
argv.append(x)
|
argv.append(x)
|
||||||
|
|
||||||
|
testdir = os.path.abspath(os.path.join("nova", "tests"))
|
||||||
c = config.Config(stream=sys.stdout,
|
c = config.Config(stream=sys.stdout,
|
||||||
env=os.environ,
|
env=os.environ,
|
||||||
verbosity=3,
|
verbosity=3,
|
||||||
|
|||||||
Reference in New Issue
Block a user