示例#1
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except NotImplementedError as e:
         raise testcase.TestSkipped(str(e))
     except Exception as e:
         if 'not implemented' in str(e):
             raise testcase.TestSkipped(str(e))
         raise
示例#2
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except panko.NotImplementedError as e:
         raise testcase.TestSkipped(six.text_type(e))
     except webtest.app.AppError as e:
         if 'not implemented' in six.text_type(e):
             raise testcase.TestSkipped(six.text_type(e))
         raise
示例#3
0
 def inner(*args, **kwargs):
     if not CONF.cache.enabled:
         raise testcase.TestSkipped('Cache globally disabled.')
     for s in sections:
         conf_sec = getattr(CONF, s, None)
         if conf_sec is not None:
             if not getattr(conf_sec, 'caching', True):
                 raise testcase.TestSkipped('%s caching disabled.' % s)
     return f(*args, **kwargs)
示例#4
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except AssertionError:
         raise
     except NotImplementedError as e:
         raise testcase.TestSkipped(six.text_type(e))
     except Exception as e:
         if 'not implemented' in six.text_type(e):
             raise testcase.TestSkipped(six.text_type(e))
         raise
示例#5
0
    def setUp(self):
        super(TestBase, self).setUp()
        db_url = os.environ.get('PIFPAF_URL',
                                "sqlite://").replace("mysql://",
                                                     "mysql+pymysql://")

        engine = urlparse.urlparse(db_url).scheme
        # in case some drivers have additional specification, for example:
        # PyMySQL will have scheme mysql+pymysql
        engine = engine.split('+')[0]

        # NOTE(Alexei_987) Shortcut to skip expensive db setUp
        test_method = self._get_test_method()
        if (hasattr(test_method, '_run_with')
                and engine not in test_method._run_with):
            raise testcase.TestSkipped('Test is not applicable for %s' %
                                       engine)

        self.CONF = service.prepare_service([], [])

        manager = self.DRIVER_MANAGERS.get(engine)
        if not manager:
            self.skipTest("missing driver manager: %s" % engine)

        self.db_manager = manager(db_url, self.CONF)

        self.useFixture(self.db_manager)

        self.conn = self.db_manager.connection
        self.conn.upgrade()

        self.useFixture(
            mockpatch.Patch('panko.storage.get_connection',
                            side_effect=self._get_connection))
示例#6
0
    def _create_key_manager(self):
        key_mgr = vault_key_manager.VaultKeyManager(cfg.CONF)

        if ('VAULT_TEST_URL' not in os.environ
                or 'VAULT_TEST_ROOT_TOKEN' not in os.environ):
            raise testcase.TestSkipped('Missing Vault setup information')

        self.root_token_id = os.environ['VAULT_TEST_ROOT_TOKEN']
        self.vault_url = os.environ['VAULT_TEST_URL']

        test_uuid = str(uuid.uuid4())
        vault_policy = 'policy-{}'.format(test_uuid)
        vault_approle = 'approle-{}'.format(test_uuid)

        self.session = requests.Session()
        self.session.headers.update({'X-Vault-Token': self.root_token_id})

        self._mount_kv(self.mountpoint)
        self._enable_approle()
        self._create_policy(vault_policy)
        self._create_approle(vault_approle, vault_policy)

        key_mgr._approle_role_id, key_mgr._approle_secret_id = (
            self._retrieve_approle(vault_approle))
        key_mgr._kv_mountpoint = self.mountpoint
        key_mgr._vault_url = self.vault_url
        return key_mgr
示例#7
0
        def run_test(*args, **kwargs):
            __e = None
            try:
                f(*args, **kwargs)
            except Exception as __e:
                if (expected_exception != Exception
                        and not isinstance(__e, expected_exception)):
                    raise AssertionError(
                        'Work In Progress Test Failed%(bugstr)s with '
                        'unexpected exception. Expected "%(expected)s" '
                        'got "%(exception)s": %(message)s ' % {
                            'message': message,
                            'bugstr': bugstr,
                            'expected': expected_exception.__class__.__name__,
                            'exception': __e.__class__.__name__
                        })
                # NOTE(notmorgan): We got the expected exception we can safely
                # skip this test.
                raise testcase.TestSkipped('Work In Progress Test Failed as '
                                           'expected%(bugstr)s: %(message)s' %
                                           {
                                               'message': message,
                                               'bugstr': bugstr
                                           })

            raise AssertionError('Work In Progress Test Passed%(bugstr)s: '
                                 '%(message)s' % {
                                     'message': message,
                                     'bugstr': bugstr
                                 })
示例#8
0
        def run_test(*args, **kwargs):
            try:
                f(*args, **kwargs)
            except Exception:
                raise testcase.TestSkipped('work in progress test failed: ' +
                                           message)

            raise AssertionError('work in progress test passed: ' + message)
示例#9
0
    def setUp(self):
        super(VaultlockerFuncBaseTestCase, self).setUp()
        self.vault_client = None

        self.vault_addr = os.environ.get('PIFPAF_VAULT_ADDR')
        self.root_token = os.environ.get('PIFPAF_ROOT_TOKEN')

        self.test_uuid = str(uuid.uuid4())
        self.vault_backend = 'vaultlocker-test-{}'.format(self.test_uuid)
        self.vault_policy = 'vaultlocker-policy-{}'.format(self.test_uuid)
        self.vault_approle = 'vaultlocker-approle-{}'.format(self.test_uuid)

        if not self.vault_addr or not self.root_token:
            raise testcase.TestSkipped('Vault not running')

        self.vault_client = hvac.Client(url=self.vault_addr,
                                        token=self.root_token)

        self.vault_client.enable_secret_backend(
            backend_type='kv',
            description='vault test backend',
            mount_point=self.vault_backend
        )

        try:
            self.vault_client.enable_auth_backend('approle')
        except hvac.exceptions.InvalidRequest:
            pass

        self.vault_client.set_policy(
            name=self.vault_policy,
            rules=TEST_POLICY.format(backend=self.vault_backend)
        )

        self.vault_client.create_role(
            self.vault_approle,
            token_ttl='60s',
            token_max_ttl='60s',
            policies=[self.vault_policy],
            bind_secret_id='true',
            bound_cidr_list='127.0.0.1/32')
        self.approle_uuid = self.vault_client.get_role_id(self.vault_approle)
        self.secret_id = self.vault_client.write(
            'auth/approle/role/{}/secret-id'.format(self.vault_approle)
        )['data']['secret_id']

        self.test_config = {
            'vault': {
                'url': self.vault_addr,
                'approle': self.approle_uuid,
                'secret_id': self.secret_id,
                'backend': self.vault_backend,
            }
        }
        self.config = mock.MagicMock()
        self.config.get.side_effect = \
            lambda s, k: self.test_config.get(s).get(k)
示例#10
0
 def setUp(self):
     if not base._TEST_INTEGRATION:
         raise testcase.TestSkipped('Only run in integration mode')
     super(TestQueues, self).setUp()
     self.project_id = uuidutils.generate_uuid()
     self.headers = {'Client-ID': uuidutils.generate_uuid(),
                     'X-Project-ID': self.project_id}
     self.client = websocket.create_connection('ws://localhost:9000/')
     self.addCleanup(self.client.close)
示例#11
0
 def setUp(self):
     super(BarbicanKeyManagerTestCase, self).setUp()
     try:
         self.ctxt = self.get_context()
         self.key_mgr._get_barbican_client(self.ctxt)
     except Exception as e:
         # When we run functional-vault target, This test class needs
         # to be skipped as barbican is not running
         raise testcase.TestSkipped(str(e))
示例#12
0
 def setUp(self):
     super(MongoDbManager, self).setUp()
     with warnings.catch_warnings():
         warnings.filterwarnings(
             action='ignore',
             message='.*you must provide a username and password.*')
         try:
             self.connection = storage.get_connection(self._conf, self.url)
         except storage.StorageBadVersion as e:
             raise testcase.TestSkipped(six.text_type(e))
示例#13
0
    def _create_key_manager(self):
        key_mgr = vault_key_manager.VaultKeyManager(cfg.CONF)

        if ('VAULT_TEST_URL' not in os.environ
                or 'VAULT_TEST_ROOT_TOKEN' not in os.environ):
            raise testcase.TestSkipped('Missing Vault setup information')

        key_mgr._root_token_id = os.environ['VAULT_TEST_ROOT_TOKEN']
        key_mgr._vault_url = os.environ['VAULT_TEST_URL']
        return key_mgr
示例#14
0
 def setUp(self):
     super(TestAPI, self).setUp()
     self.group_id = self._get_random_uuid()
     self.member_id = self._get_random_uuid()
     self._coord = tooz.coordination.get_coordinator(
         self.url, self.member_id)
     try:
         self._coord.start()
     except tooz.coordination.ToozConnectionError as e:
         raise testcase.TestSkipped(str(e))
示例#15
0
    def test_heartbeat_loop(self):
        if not self._coord.requires_beating:
            raise testcase.TestSkipped("Test not applicable (heartbeating"
                                       " not required)")

        heart = self._coord.heart
        self.assertFalse(heart.is_alive())
        heart.start()

        # This will timeout if nothing ever is done...
        try:
            while not heart.beats:
                time.sleep(1)
        finally:
            heart.stop()
            heart.wait()
示例#16
0
    def setUp(self):
        super(TestBase, self).setUp()
        db_url = os.environ.get('PIFPAF_URL',
                                "sqlite://").replace("mysql://",
                                                     "mysql+pymysql://")

        engine = urlparse.urlparse(db_url).scheme
        # in case some drivers have additional specification, for example:
        # PyMySQL will have scheme mysql+pymysql
        engine = engine.split('+')[0]

        # NOTE(Alexei_987) Shortcut to skip expensive db setUp
        test_method = self._get_test_method()
        if (hasattr(test_method, '_run_with')
                and engine not in test_method._run_with):
            raise testcase.TestSkipped('Test is not applicable for %s' %
                                       engine)

        self.CONF = self.useFixture(fixture_config.Config()).conf
        self.CONF([], project='ceilometer', validate_default_values=True)

        manager = self.DRIVER_MANAGERS.get(engine)
        if not manager:
            self.skipTest("missing driver manager: %s" % engine)

        self.db_manager = manager(db_url)

        self.useFixture(self.db_manager)

        self.conn = self.db_manager.connection
        self.conn.upgrade()

        self.event_conn = self.db_manager.event_connection
        self.event_conn.upgrade()

        self.useFixture(
            mockpatch.Patch('ceilometer.storage.get_connection',
                            side_effect=self._get_connection))

        # Set a default location for the pipeline config file so the
        # tests work even if ceilometer is not installed globally on
        # the system.
        self.CONF.import_opt('pipeline_cfg_file', 'ceilometer.pipeline')
        self.CONF.set_override('pipeline_cfg_file',
                               self.path_get('etc/ceilometer/pipeline.yaml'))
示例#17
0
    def setUp(self):
        super(TestBase, self).setUp()
        db_url = os.environ.get(
            'AODH_TEST_STORAGE_URL',
            os.environ.get("OVERTEST_URL",
                           'sqlite://').replace("mysql://",
                                                "mysql+pymysql://"))
        engine = urlparse.urlparse(db_url).scheme
        # In case some drivers have additional specification, for example:
        # PyMySQL will have scheme mysql+pymysql.
        engine = engine.split('+')[0]

        # NOTE(Alexei_987) Shortcut to skip expensive db setUp
        test_method = self._get_test_method()
        if (hasattr(test_method, '_run_with')
                and engine not in test_method._run_with):
            raise testcase.TestSkipped('Test is not applicable for %s' %
                                       engine)

        conf = service.prepare_service(argv=[], config_files=[])
        self.CONF = self.useFixture(fixture_config.Config(conf)).conf
        self.CONF.set_override('connection',
                               db_url,
                               group="database",
                               enforce_type=True)

        manager = self.DRIVER_MANAGERS.get(engine)
        if not manager:
            self.skipTest("missing driver manager: %s" % engine)

        self.db_manager = manager(self.CONF)

        self.useFixture(self.db_manager)

        self.CONF.set_override('connection',
                               self.db_manager.url,
                               group="database",
                               enforce_type=True)

        self.alarm_conn = storage.get_connection_from_config(self.CONF)
        self.alarm_conn.upgrade()

        self.useFixture(
            mockpatch.Patch('aodh.storage.get_connection_from_config',
                            side_effect=self._get_connection))
示例#18
0
    def test_restartable(self):
        if not self.restartable:
            raise testcase.TestSkipped("not restartable")
        else:
            executor = self.executor_cls(**self.executor_kwargs)
            fut = executor.submit(returns_one)
            self.assertEqual(1, fut.result())
            executor.shutdown()
            self.assertEqual(1, executor.statistics.executed)

            self.assertRaises(RuntimeError, executor.submit, returns_one)

            executor.restart()
            self.assertEqual(0, executor.statistics.executed)
            fut = executor.submit(returns_one)
            self.assertEqual(1, fut.result())
            self.assertEqual(1, executor.statistics.executed)
            executor.shutdown()
示例#19
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except exceptions.NotImplementedError as e:
         raise testcase.TestSkipped(six.text_type(e))
示例#20
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except tooz.NotImplemented as e:
         raise testcase.TestSkipped(str(e))
示例#21
0
 def wrapper(*args, **kwargs):
     test_obj = args[0]
     if not test_obj.identity_api.multiple_domains_supported:
         raise testcase.TestSkipped('No multiple domains support')
     return f(*args, **kwargs)
示例#22
0
 def skip_if_not_implemented(*args, **kwargs):
     try:
         return func(*args, **kwargs)
     except ceilometer.NotImplementedError as e:
         raise testcase.TestSkipped(str(e))
 def test_connection_error(self):
     if not hasattr(self, "bad_url"):
         raise testcase.TestSkipped("No bad URL provided")
     coord = tooz.coordination.get_coordinator(self.bad_url, self.member_id)
     self.assertRaises(tooz.coordination.ToozConnectionError, coord.start)
示例#24
0
 def test_heartbeat(self):
     if not self._coord.requires_beating:
         raise testcase.TestSkipped("Test not applicable (heartbeating"
                                    " not required)")
     self._coord.heartbeat()