コード例 #1
0
ファイル: test_manage.py プロジェクト: sanjayk5/glance
 def setUp(self):
     super(TestManage, self).setUp()
     self.db = manage.DbCommands()
     self.output = StringIO()
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.output))
コード例 #2
0
 def _capture_stream(self, stream_name):
     self.useFixture(fixtures.MonkeyPatch("sys.%s" % stream_name,
                                          moves.StringIO()))
     return getattr(sys, stream_name)
コード例 #3
0
 def setUp(self):
     super(BaseProxyTestCase, self).setUp()
     self.stderr = StringIO()
     self.useFixture(fixtures.MonkeyPatch('sys.stderr', self.stderr))
コード例 #4
0
    def _setup_fakelibvirt(self):
        # So that the _supports_direct_io does the test based
        # on the current working directory, instead of the
        # default instances_path which doesn't exist
        self.flags(instances_path=self.useFixture(fixtures.TempDir()).path)

        # Put fakelibvirt in place
        if 'libvirt' in sys.modules:
            self.saved_libvirt = sys.modules['libvirt']
        else:
            self.saved_libvirt = None

        import nova.tests.unit.virt.libvirt.fake_imagebackend as \
            fake_imagebackend
        import nova.tests.unit.virt.libvirt.fake_libvirt_utils as \
            fake_libvirt_utils
        import nova.tests.unit.virt.libvirt.fakelibvirt as fakelibvirt

        import nova.tests.unit.virt.libvirt.fake_os_brick_connector as \
            fake_os_brick_connector

        sys.modules['libvirt'] = fakelibvirt
        import nova.virt.libvirt.driver
        import nova.virt.libvirt.firewall
        import nova.virt.libvirt.host

        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.imagebackend',
            fake_imagebackend))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.libvirt_utils',
            fake_libvirt_utils))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.host.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.imagebackend.libvirt_utils',
            fake_libvirt_utils))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.firewall.libvirt',
            fakelibvirt))

        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.connector',
            fake_os_brick_connector))

        fakelibvirt.disable_event_thread(self)

        self.flags(rescue_image_id="2",
                   rescue_kernel_id="3",
                   rescue_ramdisk_id=None,
                   snapshots_directory='./',
                   sysinfo_serial='none',
                   group='libvirt')

        def fake_extend(image, size):
            pass

        def fake_migrateToURI(*a):
            pass

        def fake_make_drive(_self, _path):
            pass

        def fake_get_instance_disk_info(_self, instance, xml=None,
                                        block_device_info=None):
            return '[]'

        def fake_delete_instance_files(_self, _instance):
            pass

        def fake_wait():
            pass

        def fake_detach_device_with_retry(_self, get_device_conf_func, device,
                                          persistent, live,
                                          max_retry_count=7,
                                          inc_sleep_time=2,
                                          max_sleep_time=30):
            # Still calling detach, but instead of returning function
            # that actually checks if device is gone from XML, just continue
            # because XML never gets updated in these tests
            _self.detach_device(get_device_conf_func(device),
                                persistent=persistent,
                                live=live)
            return fake_wait

        self.stubs.Set(nova.virt.libvirt.driver.LibvirtDriver,
                       '_get_instance_disk_info',
                       fake_get_instance_disk_info)

        self.stubs.Set(nova.virt.libvirt.driver.disk,
                       'extend', fake_extend)

        self.stubs.Set(nova.virt.libvirt.driver.LibvirtDriver,
                       'delete_instance_files',
                       fake_delete_instance_files)

        self.stubs.Set(nova.virt.libvirt.guest.Guest,
                       'detach_device_with_retry',
                       fake_detach_device_with_retry)

        # Like the existing fakelibvirt.migrateToURI, do nothing,
        # but don't fail for these tests.
        self.stubs.Set(nova.virt.libvirt.driver.libvirt.Domain,
                       'migrateToURI', fake_migrateToURI)

        # We can't actually make a config drive v2 because ensure_tree has
        # been faked out
        self.stubs.Set(nova.virt.configdrive.ConfigDriveBuilder,
                       'make_drive', fake_make_drive)
コード例 #5
0
 def make_env(self, exclude=None, fake_env=FAKE_V2_ENV):
     env = dict((k, v) for k, v in fake_env.items() if k != exclude)
     self.useFixture(fixtures.MonkeyPatch('os.environ', env))
コード例 #6
0
 def test_archive_deleted_rows_verbose_no_results(self, mock_db_archive):
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', StringIO()))
     self.commands.archive_deleted_rows(20, verbose=True)
     mock_db_archive.assert_called_once_with(20)
     output = sys.stdout.getvalue()
     self.assertIn('Nothing was archived.', output)
コード例 #7
0
 def test_list(self):
     self.useFixture(fixtures.MonkeyPatch('sys.stdout',
                                          StringIO()))
     self.commands.list()
     self.assertNotEqual(1, sys.stdout.getvalue().find('192.168.0.100'))
コード例 #8
0
ファイル: test_status.py プロジェクト: zsvic/nova
 def setUp(self):
     super(TestUpgradeCheckBasic, self).setUp()
     self.output = StringIO()
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.output))
     self.cmd = status.UpgradeCommands()
コード例 #9
0
ファイル: test_status.py プロジェクト: zsvic/nova
 def setUp(self):
     super(TestNovaStatusMain, self).setUp()
     self.output = StringIO()
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.output))
コード例 #10
0
 def make_env(self, exclude=None):
     env = dict((k, v) for k, v in self.auth_env.items() if k != exclude)
     self.useFixture(fixtures.MonkeyPatch('os.environ', env))
コード例 #11
0
ファイル: test.py プロジェクト: zhangzz2/cinder
    def setUp(self):
        """Run before each test method to initialize test environment."""
        super(TestCase, self).setUp()

        # Create default notifier
        self.notifier = fake_notifier.get_fake_notifier()

        # Mock rpc get notifier with fake notifier method that joins all
        # notifications with the default notifier
        p = mock.patch('cinder.rpc.get_notifier',
                       side_effect=self._get_joined_notifier)
        p.start()

        # Unit tests do not need to use lazy gettext
        i18n.enable_lazy(False)

        test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
        try:
            test_timeout = int(test_timeout)
        except ValueError:
            # If timeout value is invalid do not set a timeout.
            test_timeout = 0
        if test_timeout > 0:
            self.useFixture(fixtures.Timeout(test_timeout, gentle=True))
        self.useFixture(fixtures.NestedTempfile())
        self.useFixture(fixtures.TempHomeDir())

        environ_enabled = (lambda var_name: strutils.bool_from_string(
            os.environ.get(var_name)))
        if environ_enabled('OS_STDOUT_CAPTURE'):
            stdout = self.useFixture(fixtures.StringStream('stdout')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
        if environ_enabled('OS_STDERR_CAPTURE'):
            stderr = self.useFixture(fixtures.StringStream('stderr')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
        if environ_enabled('OS_LOG_CAPTURE'):
            log_format = '%(levelname)s [%(name)s] %(message)s'
            if environ_enabled('OS_DEBUG'):
                level = logging.DEBUG
            else:
                level = logging.INFO
            self.useFixture(
                fixtures.LoggerFixture(nuke_handlers=False,
                                       format=log_format,
                                       level=level))

        rpc.add_extra_exmods("cinder.tests.unit")
        self.addCleanup(rpc.clear_extra_exmods)
        self.addCleanup(rpc.cleanup)

        self.messaging_conf = messaging_conffixture.ConfFixture(CONF)
        self.messaging_conf.transport_driver = 'fake'
        self.messaging_conf.response_timeout = 15
        self.useFixture(self.messaging_conf)
        rpc.init(CONF)

        conf_fixture.set_defaults(CONF)
        CONF([], default_config_files=[])

        # NOTE(vish): We need a better method for creating fixtures for tests
        #             now that we have some required db setup for the system
        #             to work properly.
        self.start = timeutils.utcnow()

        CONF.set_default('connection', 'sqlite://', 'database')
        CONF.set_default('sqlite_synchronous', False, 'database')

        global _DB_CACHE
        if not _DB_CACHE:
            _DB_CACHE = Database(sqla_api,
                                 migration,
                                 sql_connection=CONF.database.connection,
                                 sqlite_db=CONF.database.sqlite_db,
                                 sqlite_clean_db=CONF.sqlite_clean_db)
        self.useFixture(_DB_CACHE)

        # NOTE(danms): Make sure to reset us back to non-remote objects
        # for each test to avoid interactions. Also, backup the object
        # registry.
        objects_base.CinderObject.indirection_api = None
        self._base_test_obj_backup = copy.copy(
            objects_base.CinderObjectRegistry._registry._obj_classes)
        self.addCleanup(self._restore_obj_registry)

        # emulate some of the mox stuff, we can't use the metaclass
        # because it screws with our generators
        mox_fixture = self.useFixture(moxstubout.MoxStubout())
        self.mox = mox_fixture.mox
        self.stubs = mox_fixture.stubs
        self.addCleanup(CONF.reset)
        self.addCleanup(self._common_cleanup)
        self.injected = []
        self._services = []

        fake_notifier.stub_notifier(self.stubs)

        self.override_config('fatal_exception_format_errors', True)
        # This will be cleaned up by the NestedTempfile fixture
        lock_path = self.useFixture(fixtures.TempDir()).path
        self.fixture = self.useFixture(config_fixture.Config(lockutils.CONF))
        self.fixture.config(lock_path=lock_path, group='oslo_concurrency')
        lockutils.set_defaults(lock_path)
        self.override_config('policy_file',
                             os.path.join(
                                 os.path.abspath(
                                     os.path.join(
                                         os.path.dirname(__file__),
                                         '..',
                                     )), 'cinder/tests/unit/policy.json'),
                             group='oslo_policy')

        self._disable_osprofiler()

        # NOTE(geguileo): This is required because common get_by_id method in
        # cinder.db.sqlalchemy.api caches get methods and if we use a mocked
        # get method in one test it would carry on to the next test.  So we
        # clear out the cache.
        sqla_api._GET_METHODS = {}
コード例 #12
0
ファイル: base.py プロジェクト: ygkim93/OpenStackInAction
    def setUp(self):
        super(BaseTestCase, self).setUp()

        # Ensure plugin cleanup is triggered last so that
        # test-specific cleanup has a chance to release references.
        self.addCleanup(self.cleanup_core_plugin)

        # Configure this first to ensure pm debugging support for setUp()
        if os.environ.get('OS_POST_MORTEM_DEBUG') in TRUE_STRING:
            self.addOnException(post_mortem_debug.exception_handler)

        if os.environ.get('OS_DEBUG') in TRUE_STRING:
            _level = logging.DEBUG
        else:
            _level = logging.INFO
        capture_logs = os.environ.get('OS_LOG_CAPTURE') in TRUE_STRING
        if not capture_logs:
            logging.basicConfig(format=LOG_FORMAT, level=_level)
        self.log_fixture = self.useFixture(
            fixtures.FakeLogger(
                format=LOG_FORMAT,
                level=_level,
                nuke_handlers=capture_logs,
            ))

        # suppress all but errors here
        self.useFixture(
            fixtures.FakeLogger(
                name='neutron.api.extensions',
                format=LOG_FORMAT,
                level=logging.ERROR,
                nuke_handlers=capture_logs,
            ))

        test_timeout = int(os.environ.get('OS_TEST_TIMEOUT', 0))
        if test_timeout == -1:
            test_timeout = 0
        if test_timeout > 0:
            self.useFixture(fixtures.Timeout(test_timeout, gentle=True))

        # If someone does use tempfile directly, ensure that it's cleaned up
        self.useFixture(fixtures.NestedTempfile())
        self.useFixture(fixtures.TempHomeDir())

        self.temp_dir = self.useFixture(fixtures.TempDir()).path
        cfg.CONF.set_override('state_path', self.temp_dir)

        self.addCleanup(mock.patch.stopall)
        self.addCleanup(CONF.reset)

        if os.environ.get('OS_STDOUT_CAPTURE') in TRUE_STRING:
            stdout = self.useFixture(fixtures.StringStream('stdout')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
        if os.environ.get('OS_STDERR_CAPTURE') in TRUE_STRING:
            stderr = self.useFixture(fixtures.StringStream('stderr')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
        self.useFixture(
            fixtures.MonkeyPatch(
                'neutron.common.exceptions.NeutronException.use_fatal_exceptions',
                fake_use_fatal_exceptions))

        if sys.version_info < (2, 7) and getattr(self, 'fmt', '') == 'xml':
            raise self.skipException('XML Testing Skipped in Py26')
コード例 #13
0
 def _main_test_helper(self, argv, func_name=None, *exp_args, **exp_kwargs):
     self.useFixture(fixtures.MonkeyPatch('sys.argv', argv))
     manage.main()
     func_name.assert_called_once_with(*exp_args, **exp_kwargs)
コード例 #14
0
    def setUp(self):
        super(ClientTestBase, self).setUp()

        test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0)
        try:
            test_timeout = int(test_timeout)
        except ValueError:
            test_timeout = 0
        if test_timeout > 0:
            self.useFixture(fixtures.Timeout(test_timeout, gentle=True))

        if (os.environ.get('OS_STDOUT_CAPTURE') == 'True' or
                os.environ.get('OS_STDOUT_CAPTURE') == '1'):
            stdout = self.useFixture(fixtures.StringStream('stdout')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
        if (os.environ.get('OS_STDERR_CAPTURE') == 'True' or
                os.environ.get('OS_STDERR_CAPTURE') == '1'):
            stderr = self.useFixture(fixtures.StringStream('stderr')).stream
            self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))

        if (os.environ.get('OS_LOG_CAPTURE') != 'False' and
                os.environ.get('OS_LOG_CAPTURE') != '0'):
            self.useFixture(fixtures.LoggerFixture(nuke_handlers=False,
                                                   format=self.log_format,
                                                   level=None))

        # TODO(sdague): while we collect this information in
        # tempest-lib, we do it in a way that's not available for top
        # level tests. Long term this probably needs to be in the base
        # class.
        user = os.environ['OS_USERNAME']
        passwd = os.environ['OS_PASSWORD']
        tenant = os.environ['OS_TENANT_NAME']
        auth_url = os.environ['OS_AUTH_URL']

        # TODO(sdague): we made a lot of fun of the glanceclient team
        # for version as int in first parameter. I guess we know where
        # they copied it from.
        self.client = novaclient.client.Client(
            2, user, passwd, tenant,
            auth_url=auth_url)

        # pick some reasonable flavor / image combo
        self.flavor = pick_flavor(self.client.flavors.list())
        self.image = pick_image(self.client.images.list())

        # create a CLI client in case we'd like to do CLI
        # testing. tempest_lib does this realy weird thing where it
        # builds a giant factory of all the CLIs that it knows
        # about. Eventually that should really be unwound into
        # something more sensible.
        cli_dir = os.environ.get(
            'OS_NOVACLIENT_EXEC_DIR',
            os.path.join(os.path.abspath('.'), '.tox/functional/bin'))

        self.cli_clients = tempest_lib.cli.base.CLIClient(
            username=os.environ.get('OS_USERNAME'),
            password=os.environ.get('OS_PASSWORD'),
            tenant_name=os.environ.get('OS_TENANT_NAME'),
            uri=os.environ.get('OS_AUTH_URL'),
            cli_dir=cli_dir)
コード例 #15
0
 def setUp(self):
     super(TestStream, self).setUp()
     self.useFixture(
         fixtures.MonkeyPatch('gerritlib.gerrit.Gerrit', fg.Gerrit))
コード例 #16
0
ファイル: test_status.py プロジェクト: zsvic/nova
 def setUp(self):
     super(TestUpgradeCheckAPIServiceVersion, self).setUp()
     self.output = StringIO()
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.output))
     self.useFixture(nova_fixtures.Database(database='api'))
     self.cmd = status.UpgradeCommands()
コード例 #17
0
 def setUp(self):
     super(TestRequestWireFormat, self).setUp()
     self.uuids = []
     self.orig_uuid4 = uuid.uuid4
     self.useFixture(fixtures.MonkeyPatch('uuid.uuid4', self.mock_uuid4))
コード例 #18
0
ファイル: fixtures.py プロジェクト: ztortoise/nova
 def setUp(self):
     super(NoopConductorFixture, self).setUp()
     self.useFixture(fixtures.MonkeyPatch(
         'nova.conductor.ComputeTaskAPI', _NoopConductor))
     self.useFixture(fixtures.MonkeyPatch(
         'nova.conductor.API', _NoopConductor))
コード例 #19
0
 def test_null_instance_uuid_scan_no_records_found(self, mock_scan):
     self.useFixture(fixtures.MonkeyPatch('sys.stdout',
                                          StringIO()))
     self.commands.null_instance_uuid_scan()
     self.assertIn("There were no records found", sys.stdout.getvalue())
コード例 #20
0
ファイル: fixtures.py プロジェクト: ztortoise/nova
 def setUp(self):
     super(EventReporterStub, self).setUp()
     self.useFixture(fixtures.MonkeyPatch(
         'nova.compute.utils.EventReporter',
         lambda *args, **kwargs: mock.MagicMock()))
コード例 #21
0
ファイル: fixtures.py プロジェクト: lubidl0/cinder-1
    def setUp(self):
        super(PrivsepNoHelperFixture, self).setUp()

        self.useFixture(
            fixtures.MonkeyPatch('oslo_privsep.daemon.RootwrapClientChannel',
                                 UnHelperfulClientChannel))
コード例 #22
0
ファイル: fixtures.py プロジェクト: ztortoise/nova
 def setUp(self):
     super(DatabasePoisonFixture, self).setUp()
     self.useFixture(fixtures.MonkeyPatch(
         'oslo_db.sqlalchemy.enginefacade._TransactionFactory.'
         '_create_session',
         self._poison_configure))
コード例 #23
0
 def make_env(self, exclude=None, fake_env=FAKE_V3_ENV):
     if 'OS_AUTH_URL' in fake_env:
         fake_env.update({'OS_AUTH_URL': 'http://no.where/v3'})
     env = dict((k, v) for k, v in fake_env.items() if k != exclude)
     self.useFixture(fixtures.MonkeyPatch('os.environ', env))
コード例 #24
0
ファイル: fixtures.py プロジェクト: ztortoise/nova
 def setUp(self):
     super(SpawnIsSynchronousFixture, self).setUp()
     self.useFixture(fixtures.MonkeyPatch(
         'nova.utils.spawn_n', _FakeGreenThread))
     self.useFixture(fixtures.MonkeyPatch(
         'nova.utils.spawn', _FakeGreenThread))
コード例 #25
0
 def setUp(self):
     super(ShellTest, self).setUp()
     self.useFixture(
         fixtures.MonkeyPatch('troveclient.client.get_client_class',
                              mock.MagicMock))
コード例 #26
0
ファイル: fixtures.py プロジェクト: ztortoise/nova
 def setUp(self):
     super(AllServicesCurrent, self).setUp()
     self.useFixture(fixtures.MonkeyPatch(
         'nova.objects.Service.get_minimum_version_multi',
         self._fake_minimum))
     compute_rpcapi.LAST_VERSION = None
コード例 #27
0
 def setUp(self):
     super(CaptureStdout, self).setUp()
     self.stdout = fixtures.StringStream('stdout')
     self.useFixture(self.stdout)
     self.useFixture(fixtures.MonkeyPatch('sys.stdout', self.stdout.stream))
コード例 #28
0
def captured_output(streamname):
    stream = StringIO()
    patch = fixtures.MonkeyPatch('sys.%s' % streamname, stream)
    with patch:
        yield stream
コード例 #29
0
 def test_nbd_no_free_devices(self):
     tempdir = self.useFixture(fixtures.TempDir()).path
     n = nbd.NbdMount(self.file, tempdir)
     self.useFixture(fixtures.MonkeyPatch('os.path.exists',
                                          _fake_exists_all_used))
     self.assertIsNone(n._allocate_nbd())
コード例 #30
0
ファイル: test_nbd.py プロジェクト: BigFire/nova-1
 def setUp(self):
     super(NbdTestCase, self).setUp()
     self.stubs.Set(nbd.NbdMount, '_detect_nbd_devices',
                    _fake_detect_nbd_devices)
     self.useFixture(
         fixtures.MonkeyPatch('os.listdir', _fake_listdir_nbd_devices))