diff --git a/tuskarclient/tests/v2/test_plans.py b/tuskarclient/tests/v2/test_plans.py index 47fc285..9e02458 100644 --- a/tuskarclient/tests/v2/test_plans.py +++ b/tuskarclient/tests/v2/test_plans.py @@ -125,7 +125,8 @@ class PlanManagerTest(tutils.TestCase): self.pm._get.return_value.to_dict.return_value = 'fake_templates_dict' self.assertEqual(self.pm.templates('fake_plan'), 'fake_templates_dict') - self.pm._get.assert_called_with('/v2/plans/fake_plan/templates') + self.pm._get.assert_called_with('/v2/plans/fake_plan/templates', + obj_class=plans.Templates) def test_roles_subresource(self): self.pm._get = mock.Mock( diff --git a/tuskarclient/v2/plans.py b/tuskarclient/v2/plans.py index f846935..fd8236e 100644 --- a/tuskarclient/v2/plans.py +++ b/tuskarclient/v2/plans.py @@ -28,6 +28,15 @@ class Plan(common_base.Resource): self.roles = [roles.Role(None, role) for role in self.roles] +class Templates(common_base.Resource): + """Represents sets of templates of a Plan in the Tuskar API. + + :param manager: Manager object + :param info: dictionary representing resource attributes + :param loaded: prevent lazy-loading if set to True + """ + + class PlanManager(base.Manager): """PlanManager interacts with the Tuskar API and provides CRUD operations for the Plan type. @@ -157,7 +166,5 @@ class PlanManager(base.Manager): :rtype: dict """ - # dirty hack as _get() will instantiate Plan with data - # coming from API response body - # and to_dict just get what we want - return self._get(self._templates_path(plan_uuid)).to_dict() + return self._get(self._templates_path(plan_uuid), + obj_class=Templates).to_dict()