Fix subject, object and action categories commands and add tests for them. 01/1701/1
authorasteroide <thomas.duval@orange.com>
Thu, 17 Sep 2015 15:21:23 +0000 (17:21 +0200)
committerasteroide <thomas.duval@orange.com>
Thu, 17 Sep 2015 15:21:23 +0000 (17:21 +0200)
Change-Id: I36dac141516da4a21c71cd7dadbb468fde255df7

moonclient/moonclient/action_categories.py
moonclient/moonclient/object_categories.py
moonclient/moonclient/subject_categories.py
moonclient/moonclient/tests/tests_action_categories.json [new file with mode: 0644]
moonclient/moonclient/tests/tests_object_categories.json [new file with mode: 0644]
moonclient/moonclient/tests/tests_subject_categories.json [new file with mode: 0644]

index 33875f5..4481876 100644 (file)
@@ -28,11 +28,9 @@ class ActionCategoriesList(Lister):
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_categories".format(parsed_args.intraextension),
                                 authtoken=True)
-        if "action_categories" not in data:
-            raise Exception("Error in command {}: {}".format("ActionCategoriesList", data))
         return (
-            ("action_categories",),
-            ((_uuid, ) for _uuid in data["action_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
@@ -53,19 +51,25 @@ class ActionCategoriesAdd(Command):
             metavar='<intraextension-uuid>',
             help='IntraExtension UUID',
         )
+        parser.add_argument(
+            '--description',
+            metavar='<description-str>',
+            help='Category description',
+        )
         return parser
 
     def take_action(self, parsed_args):
         if not parsed_args.intraextension:
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_categories".format(parsed_args.intraextension),
-                                post_data={"action_category_id": parsed_args.action_category},
+                                post_data={
+                                    "action_category_name": parsed_args.action_category,
+                                    "action_category_description": parsed_args.description,
+                                },
                                 authtoken=True)
-        if "action_categories" not in data:
-            raise Exception("Error in command {}".format(data))
         return (
-            ("action_categories",),
-            ((_uuid, ) for _uuid in data["action_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
index caae13c..6c0076f 100644 (file)
@@ -28,11 +28,9 @@ class ObjectCategoriesList(Lister):
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/object_categories".format(parsed_args.intraextension),
                                 authtoken=True)
-        if "object_categories" not in data:
-            raise Exception("Error in command {}: {}".format("ObjectCategoriesList", data))
         return (
-            ("object_categories",),
-            ((_uuid, ) for _uuid in data["object_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
@@ -53,19 +51,25 @@ class ObjectCategoriesAdd(Command):
             metavar='<intraextension-uuid>',
             help='IntraExtension UUID',
         )
+        parser.add_argument(
+            '--description',
+            metavar='<description-str>',
+            help='Category description',
+        )
         return parser
 
     def take_action(self, parsed_args):
         if not parsed_args.intraextension:
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/object_categories".format(parsed_args.intraextension),
-                                post_data={"object_category_id": parsed_args.object_category},
+                                post_data={
+                                    "object_category_name": parsed_args.object_category,
+                                    "object_category_description": parsed_args.description,
+                                },
                                 authtoken=True)
-        if "object_categories" not in data:
-            raise Exception("Error in command {}".format(data))
         return (
-            ("object_categories",),
-            ((_uuid, ) for _uuid in data["object_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
index 93f56bd..274ab21 100644 (file)
@@ -28,11 +28,9 @@ class SubjectCategoriesList(Lister):
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/subject_categories".format(parsed_args.intraextension),
                                 authtoken=True)
-        if "subject_categories" not in data:
-            raise Exception("Error in command {}: {}".format("SubjectCategoriesList", data))
         return (
-            ("subject_categories",),
-            ((_uuid, ) for _uuid in data["subject_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
@@ -53,19 +51,25 @@ class SubjectCategoriesAdd(Command):
             metavar='<intraextension-uuid>',
             help='IntraExtension UUID',
         )
+        parser.add_argument(
+            '--description',
+            metavar='<description-str>',
+            help='Category description',
+        )
         return parser
 
     def take_action(self, parsed_args):
         if not parsed_args.intraextension:
             parsed_args.intraextension = self.app.intraextension
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/subject_categories".format(parsed_args.intraextension),
-                                post_data={"subject_category_id": parsed_args.subject_category},
+                                post_data={
+                                    "subject_category_name": parsed_args.subject_category,
+                                    "subject_category_description": parsed_args.description,
+                                },
                                 authtoken=True)
-        if "subject_categories" not in data:
-            raise Exception("Error in command {}".format(data))
         return (
-            ("subject_categories",),
-            ((_uuid, ) for _uuid in data["subject_categories"])
+            ("id", "name", "description"),
+            ((_uuid, data[_uuid]["name"], data[_uuid]["description"]) for _uuid in data)
         )
 
 
diff --git a/moonclient/moonclient/tests/tests_action_categories.json b/moonclient/moonclient/tests/tests_action_categories.json
new file mode 100644 (file)
index 0000000..dfd4be6
--- /dev/null
@@ -0,0 +1,236 @@
+{
+  "command_options": "-f value",
+  "tests_group": {
+    "authz": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_action_category",
+        "command": "action category add my_new_action_category",
+        "result": "",
+        "description": "Add the new action category my_new_action_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_action_category",
+        "command": "action category list",
+        "result": "(?P<uuid_action_category>\\w+)\\s+my_new_action_category",
+        "description": "Check that my_new_action_category action_category was added."
+      },
+      {
+        "name": "delete_action_category",
+        "command": "action category delete $uuid_action_category",
+        "result": "^$",
+        "description": "Delete my_new_action_category action_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_action_category",
+        "command": "action category list",
+        "result": "(?!$uuid_action_category)",
+        "description": "Check that my_new_action_category action_category was deleted."
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ],
+    "authz_and_admin": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "create_intraextension_admin",
+        "command": "intraextension create --policy_model policy_admin admin_test",
+        "result": "IntraExtension created: (?P<uuid_admin>\\w+)",
+        "description": "Create an admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_admin",
+        "command": "intraextension list",
+        "result": "$uuid_admin",
+        "description": "Check the existence of that admin intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant demo",
+        "command_options": ""
+      },
+      {
+        "name": "set_tenant_admin",
+        "command": "tenant set --admin $uuid_admin $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo and authz ie",
+        "command": "tenant list",
+        "result": "alt_demo $uuid_authz",
+        "description": "Check that authz intra extension has been correctly added to the tenant.",
+        "command_options": "-c name -c intra_authz_extension_id -f value"
+      },
+      {
+        "name": "check tenant alt_demo and admin ie",
+        "command": "tenant list",
+        "result": "$uuid_admin",
+        "description": "Check that admin intra extension has been correctly added to the tenant.",
+        "command_options": "-c intra_admin_extension_id -f value"
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_action_category",
+        "command": "action category add my_new_action_category",
+        "result": "",
+        "description": "Add the new action category my_new_action_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_action_category",
+        "command": "action category list",
+        "result": "(?P<uuid_action_category>\\w+)\\s+my_new_action_category",
+        "description": "Check that my_new_action_category action_category was added."
+      },
+      {
+        "name": "delete_action_category",
+        "command": "action category delete $uuid_action_category",
+        "result": "^$",
+        "description": "Delete my_new_action_category action_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_action_category",
+        "command": "action category list",
+        "result": "(?!$uuid_action_category)",
+        "description": "Check that my_new_action_category action_category was deleted."
+      },
+      {
+        "name": "delete_admin_intra_extension",
+        "command": "intraextension delete $uuid_admin",
+        "result": "",
+        "description": "Delete the admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/moonclient/moonclient/tests/tests_object_categories.json b/moonclient/moonclient/tests/tests_object_categories.json
new file mode 100644 (file)
index 0000000..cd7ad01
--- /dev/null
@@ -0,0 +1,236 @@
+{
+  "command_options": "-f value",
+  "tests_group": {
+    "authz": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_object_category",
+        "command": "object category add my_new_object_category",
+        "result": "",
+        "description": "Add the new object category my_new_object_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_object_category",
+        "command": "object category list",
+        "result": "(?P<uuid_object_category>\\w+)\\s+my_new_object_category",
+        "description": "Check that my_new_object_category object_category was added."
+      },
+      {
+        "name": "delete_object_category",
+        "command": "object category delete $uuid_object_category",
+        "result": "^$",
+        "description": "Delete my_new_object_category object_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_object_category",
+        "command": "object category list",
+        "result": "(?!$uuid_object_category)",
+        "description": "Check that my_new_object_category object_category was deleted."
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ],
+    "authz_and_admin": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "create_intraextension_admin",
+        "command": "intraextension create --policy_model policy_admin admin_test",
+        "result": "IntraExtension created: (?P<uuid_admin>\\w+)",
+        "description": "Create an admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_admin",
+        "command": "intraextension list",
+        "result": "$uuid_admin",
+        "description": "Check the existence of that admin intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant demo",
+        "command_options": ""
+      },
+      {
+        "name": "set_tenant_admin",
+        "command": "tenant set --admin $uuid_admin $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo and authz ie",
+        "command": "tenant list",
+        "result": "alt_demo $uuid_authz",
+        "description": "Check that authz intra extension has been correctly added to the tenant.",
+        "command_options": "-c name -c intra_authz_extension_id -f value"
+      },
+      {
+        "name": "check tenant alt_demo and admin ie",
+        "command": "tenant list",
+        "result": "$uuid_admin",
+        "description": "Check that admin intra extension has been correctly added to the tenant.",
+        "command_options": "-c intra_admin_extension_id -f value"
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_object_category",
+        "command": "object category add my_new_object_category",
+        "result": "",
+        "description": "Add the new object category my_new_object_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_object_category",
+        "command": "object category list",
+        "result": "(?P<uuid_object_category>\\w+)\\s+my_new_object_category",
+        "description": "Check that my_new_object_category object_category was added."
+      },
+      {
+        "name": "delete_object_category",
+        "command": "object category delete $uuid_object_category",
+        "result": "^$",
+        "description": "Delete my_new_object_category object_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_object_category",
+        "command": "object category list",
+        "result": "(?!$uuid_object_category)",
+        "description": "Check that my_new_object_category object_category was deleted."
+      },
+      {
+        "name": "delete_admin_intra_extension",
+        "command": "intraextension delete $uuid_admin",
+        "result": "",
+        "description": "Delete the admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/moonclient/moonclient/tests/tests_subject_categories.json b/moonclient/moonclient/tests/tests_subject_categories.json
new file mode 100644 (file)
index 0000000..644d78b
--- /dev/null
@@ -0,0 +1,236 @@
+{
+  "command_options": "-f value",
+  "tests_group": {
+    "authz": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_subject_category",
+        "command": "subject category add my_new_subject_category",
+        "result": "",
+        "description": "Add the new subject category my_new_subject_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_subject_category",
+        "command": "subject category list",
+        "result": "(?P<uuid_subject_category>\\w+)\\s+my_new_subject_category",
+        "description": "Check that my_new_subject_category subject_category was added."
+      },
+      {
+        "name": "delete_subject_category",
+        "command": "subject category delete $uuid_subject_category",
+        "result": "^$",
+        "description": "Delete my_new_subject_category subject_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_subject_category",
+        "command": "subject category list",
+        "result": "(?!$uuid_subject_category)",
+        "description": "Check that my_new_subject_category subject_category was deleted."
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ],
+    "authz_and_admin": [
+      {
+        "name": "list tenant",
+        "command": "tenant list",
+        "result": "(?!alt_demo)",
+        "description": "Check if tenant alt_demo is used."
+      },
+      {
+        "name": "add tenant alt_demo",
+        "command": "tenant add alt_demo",
+        "result": "^$",
+        "description": "Add a new tenant",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo",
+        "command": "tenant list",
+        "result": "(?P<uuid>\\w+)\\s+alt_demo",
+        "description": "Check that tenant alt_demo has been correctly added"
+      },
+      {
+        "name": "create_intraextension_authz",
+        "command": "intraextension create --policy_model policy_authz authz_test",
+        "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+        "description": "Create an authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_authz",
+        "command": "intraextension list",
+        "result": "$uuid_authz",
+        "description": "Check the existence of that authz intra extension"
+      },
+      {
+        "name": "create_intraextension_admin",
+        "command": "intraextension create --policy_model policy_admin admin_test",
+        "result": "IntraExtension created: (?P<uuid_admin>\\w+)",
+        "description": "Create an admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "list_intraextension_admin",
+        "command": "intraextension list",
+        "result": "$uuid_admin",
+        "description": "Check the existence of that admin intra extension"
+      },
+      {
+        "name": "set_tenant_authz",
+        "command": "tenant set --authz $uuid_authz $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant demo",
+        "command_options": ""
+      },
+      {
+        "name": "set_tenant_admin",
+        "command": "tenant set --admin $uuid_admin $uuid",
+        "result": "",
+        "description": "Connect the authz intra extension to the tenant alt_demo",
+        "command_options": ""
+      },
+      {
+        "name": "check tenant alt_demo and authz ie",
+        "command": "tenant list",
+        "result": "alt_demo $uuid_authz",
+        "description": "Check that authz intra extension has been correctly added to the tenant.",
+        "command_options": "-c name -c intra_authz_extension_id -f value"
+      },
+      {
+        "name": "check tenant alt_demo and admin ie",
+        "command": "tenant list",
+        "result": "$uuid_admin",
+        "description": "Check that admin intra extension has been correctly added to the tenant.",
+        "command_options": "-c intra_admin_extension_id -f value"
+      },
+      {
+        "name": "select_authz_ie",
+        "command": "intraextension select $uuid_authz",
+        "result": "Select $uuid_authz IntraExtension.",
+        "description": "Select the authz IntraExtension",
+        "command_options": ""
+      },
+      {
+        "name": "check_select_authz_ie",
+        "command": "intraextension show selected",
+        "result": "$uuid_authz",
+        "description": "Check the selected authz IntraExtension",
+        "command_options": "-c id -f value"
+      },
+      {
+        "name": "add_subject_category",
+        "command": "subject category add my_new_subject_category",
+        "result": "",
+        "description": "Add the new subject category my_new_subject_category",
+        "command_options": ""
+      },
+      {
+        "name": "list_subject_category",
+        "command": "subject category list",
+        "result": "(?P<uuid_subject_category>\\w+)\\s+my_new_subject_category",
+        "description": "Check that my_new_subject_category subject_category was added."
+      },
+      {
+        "name": "delete_subject_category",
+        "command": "subject category delete $uuid_subject_category",
+        "result": "^$",
+        "description": "Delete my_new_subject_category subject_category.",
+        "command_options": ""
+      },
+      {
+        "name": "list_subject_category",
+        "command": "subject category list",
+        "result": "(?!$uuid_subject_category)",
+        "description": "Check that my_new_subject_category subject_category was deleted."
+      },
+      {
+        "name": "delete_admin_intra_extension",
+        "command": "intraextension delete $uuid_admin",
+        "result": "",
+        "description": "Delete the admin intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_authz_intra_extension",
+        "command": "intraextension delete $uuid_authz",
+        "result": "",
+        "description": "Delete the authz intra extension",
+        "command_options": ""
+      },
+      {
+        "name": "delete_tenant",
+        "command": "tenant delete $uuid",
+        "result": "",
+        "description": "Delete the tenant alt_demo",
+        "command_options": ""
+      }
+    ]
+  }
+}
\ No newline at end of file