Fix bug with action class attributes
* Need to write an integration test for it.
Closes-Bug: #1448403
Change-Id: I7f477f6c87b21ff0f8c9a31ae72086830c7fa9b4
(cherry picked from commit f8d2d5c164
)
This commit is contained in:
parent
fd052ec04b
commit
16eeb9f099
|
@ -19,7 +19,10 @@ def construct_action_class(action_class_str, attributes):
|
|||
# Rebuild action class and restore attributes.
|
||||
action_class = importutils.import_class(action_class_str)
|
||||
|
||||
for name, value in attributes.items():
|
||||
setattr(action_class, name, value)
|
||||
unique_action_class = type(
|
||||
action_class.__name__,
|
||||
(action_class,),
|
||||
attributes
|
||||
)
|
||||
|
||||
return action_class
|
||||
return unique_action_class
|
||||
|
|
|
@ -23,7 +23,7 @@ from mistral.tests import base
|
|||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ActionFactoryTest(base.DbTestCase):
|
||||
class ActionManagerTest(base.DbTestCase):
|
||||
def test_register_standard_actions(self):
|
||||
action_list = a_m.get_registered_actions()
|
||||
|
||||
|
@ -44,17 +44,24 @@ class ActionFactoryTest(base.DbTestCase):
|
|||
self._assert_single_item(action_list, name="glance.images_delete")
|
||||
|
||||
def test_get_action_class(self):
|
||||
self.assertEqual(std.EchoAction, a_m.get_action_class("std.echo"))
|
||||
self.assertEqual(std.HTTPAction, a_m.get_action_class("std.http"))
|
||||
self.assertEqual(
|
||||
std.MistralHTTPAction,
|
||||
a_m.get_action_class("std.mistral_http")
|
||||
self.assertTrue(
|
||||
issubclass(a_m.get_action_class("std.echo"), std.EchoAction)
|
||||
)
|
||||
self.assertEqual(
|
||||
std.SendEmailAction,
|
||||
a_m.get_action_class("std.email")
|
||||
self.assertTrue(
|
||||
issubclass(a_m.get_action_class("std.http"), std.HTTPAction)
|
||||
)
|
||||
self.assertEqual(
|
||||
std.JavaScriptAction,
|
||||
a_m.get_action_class("std.javascript")
|
||||
self.assertTrue(
|
||||
issubclass(
|
||||
a_m.get_action_class("std.mistral_http"),
|
||||
std.MistralHTTPAction
|
||||
)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(a_m.get_action_class("std.email"), std.SendEmailAction)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(
|
||||
a_m.get_action_class("std.javascript"),
|
||||
std.JavaScriptAction
|
||||
)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue