109
109
self.action_ext = action_ext
110
110
self.request_ext = request_ext
111
111
self.controller_ext = controller_ext
112
self.extra_resource_ext = None
113
114
def get_resources(self):
114
115
resource_exts = []
115
116
if self.resource_ext:
116
117
resource_exts.append(self.resource_ext)
118
if self.extra_resource_ext:
119
resource_exts.append(self.extra_resource_ext)
117
120
return resource_exts
119
122
def get_actions(self):
382
386
app = compute.APIRouter()
383
387
ext_mgr = compute_extensions.ExtensionManager()
384
388
ext_mgr.register(InvalidExtension())
385
self.assertTrue('FOXNSOX' in ext_mgr.extensions)
386
self.assertTrue('THIRD' not in ext_mgr.extensions)
389
self.assertTrue(ext_mgr.is_loaded('FOXNSOX'))
390
self.assertFalse(ext_mgr.is_loaded('THIRD'))
389
393
class ActionExtensionTest(ExtensionTestCase):
513
517
self.assertEqual(200, response.status_int)
514
518
self.assertEqual(extension_body, response.body)
520
def test_controller_extension_late_inherited_resource(self):
521
# Need a dict for the body to convert to a ResponseObject
522
controller = StubController(dict(foo=response_body))
523
parent_ext = base_extensions.ResourceExtension('tweedles', controller)
525
ext_controller = StubLateExtensionController(extension_body)
526
extension = StubControllerExtension()
527
cont_ext = base_extensions.ControllerExtension(extension, 'tweedles',
530
manager = StubExtensionManager(resource_ext=parent_ext,
531
controller_ext=cont_ext)
532
child_ext = base_extensions.ResourceExtension('beetles', controller,
534
manager.extra_resource_ext = child_ext
535
app = compute.APIRouter(manager)
536
request = webob.Request.blank("/fake/beetles")
537
response = request.get_response(app)
538
self.assertEqual(200, response.status_int)
539
self.assertEqual(extension_body, response.body)
516
541
def test_controller_action_extension_early(self):
517
542
controller = StubActionController(response_body)
518
543
actions = dict(action='POST')