def test_missing_module_from_mapping(self): with _patch_openstack_action_mapping_path(RELATIVE_TEST_MAPPING_PATH): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_names = [action['name'] for action in action_classes] cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] if cls == actions.NovaAction: self.assertIn('nova.servers_get', action_names) self.assertEqual(3, len(action_names)) elif cls not in (actions.GlanceAction, actions.KeystoneAction): self.assertEqual([], action_names)
def test_missing_module_from_mapping(self): with _patch_openstack_action_mapping_path(RELATIVE_TEST_MAPPING_PATH): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_names = [action['name'] for action in action_classes] cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] if cls == actions.NovaAction: self.assertIn('nova.servers_get', action_names) self.assertEqual(3, len(action_names)) elif cls not in (actions.GlanceAction, actions.KeystoneAction): self.assertEqual([], action_names)
def _register_dynamic_action_classes(): for generator in generator_factory.all_generators(): actions = generator.create_actions() module = generator.base_action_class.__module__ class_name = generator.base_action_class.__name__ action_class_str = "%s.%s" % (module, class_name) for action in actions: attrs = i_utils.get_public_fields(action['class']) register_action_class(action['name'], action_class_str, attrs, action['description'], action['arg_list'])
def test_absolute_mapping_path(self): with _patch_openstack_action_mapping_path(ABSOLUTE_TEST_MAPPING_PATH): self.assertTrue(os.path.isabs(ABSOLUTE_TEST_MAPPING_PATH), "Mapping path is relative: %s" % ABSOLUTE_TEST_MAPPING_PATH) for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_names = [action['name'] for action in action_classes] cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] if cls == actions.NovaAction: self.assertIn('nova.servers_get', action_names) self.assertEqual(3, len(action_names)) elif cls not in (actions.GlanceAction, actions.KeystoneAction): self.assertEqual([], action_names)
def test_generator(self): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_name = MODULE_MAPPING.get(generator_cls.action_namespace)[0] action_cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] method_name_pre = action_name.split('.')[1] method_name = (method_name_pre if generator_cls.action_namespace in EXTRA_MODULES else method_name_pre.replace( '_', '.')) action = self._assert_single_item(action_classes, name=action_name) self.assertTrue(issubclass(action['class'], action_cls)) self.assertEqual(method_name, action['class'].client_method_name)
def test_absolute_mapping_path(self): with _patch_openstack_action_mapping_path(ABSOLUTE_TEST_MAPPING_PATH): self.assertTrue(os.path.isabs(ABSOLUTE_TEST_MAPPING_PATH), "Mapping path is relative: %s" % ABSOLUTE_TEST_MAPPING_PATH) for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_names = [action['name'] for action in action_classes] cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] if cls == actions.NovaAction: self.assertIn('nova.servers_get', action_names) self.assertEqual(3, len(action_names)) elif cls not in (actions.GlanceAction, actions.KeystoneAction): self.assertEqual([], action_names)
def _register_dynamic_action_classes(): for generator in generator_factory.all_generators(): actions = generator.create_actions() module = generator.base_action_class.__module__ class_name = generator.base_action_class.__name__ action_class_str = "%s.%s" % (module, class_name) for action in actions: attrs = i_utils.get_public_fields(action['class']) register_action_class( action['name'], action_class_str, attrs, action['description'], action['arg_list'] )
def test_generator(self): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_name = MODULE_MAPPING[generator_cls.action_namespace][0] action_cls = MODULE_MAPPING[generator_cls.action_namespace][1] method_name_pre = action_name.split('.')[1] method_name = (method_name_pre if generator_cls.action_namespace in EXTRA_MODULES else method_name_pre.replace( '_', '.')) action = self._assert_single_item(action_classes, name=action_name) self.assertTrue(issubclass(action['class'], action_cls)) self.assertEqual(method_name, action['class'].client_method_name) modules = CONF.openstack_actions.modules_support_region if generator_cls.action_namespace in modules: self.assertIn('action_region', action['arg_list'])
def test_generator(self): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_name = MODULE_MAPPING.get(generator_cls.action_namespace)[0] action_cls = MODULE_MAPPING.get(generator_cls.action_namespace)[1] method_name_pre = action_name.split('.')[1] method_name = ( method_name_pre if generator_cls.action_namespace in EXTRA_MODULES else method_name_pre.replace('_', '.') ) action = self._assert_single_item( action_classes, name=action_name ) self.assertTrue(issubclass(action['class'], action_cls)) self.assertEqual(method_name, action['class'].client_method_name)
def test_generator(self): for generator_cls in generator_factory.all_generators(): action_classes = generator_cls.create_actions() action_name = MODULE_MAPPING[generator_cls.action_namespace][0] action_cls = MODULE_MAPPING[generator_cls.action_namespace][1] method_name_pre = action_name.split('.')[1] method_name = ( method_name_pre if generator_cls.action_namespace in EXTRA_MODULES else method_name_pre.replace('_', '.') ) action = self._assert_single_item( action_classes, name=action_name ) self.assertTrue(issubclass(action['class'], action_cls)) self.assertEqual(method_name, action['class'].client_method_name) modules = CONF.openstack_actions.modules_support_region if generator_cls.action_namespace in modules: self.assertIn('action_region', action['arg_list'])