Merged trunk

This commit is contained in:
Josh Kearney
2011-02-25 11:00:01 -06:00
12 changed files with 55 additions and 51 deletions

View File

@@ -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]

View File

@@ -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,

View File

@@ -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()

View File

@@ -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)

View File

@@ -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

View File

@@ -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])

View File

@@ -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')

View File

@@ -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'])

View File

@@ -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()

View File

@@ -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)

View File

@@ -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):

View File

@@ -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,