This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 7171699  Remove code duplication in the test suite test_views_acl.py 
(#20887)
7171699 is described below

commit 717169987e76f332d7ce92bc361d2fff6966f6f0
Author: Khalid Mammadov <[email protected]>
AuthorDate: Sun Jan 16 08:24:38 2022 +0000

    Remove code duplication in the test suite test_views_acl.py (#20887)
---
 tests/www/views/test_views_acl.py | 75 +++++++++++++++------------------------
 1 file changed, 29 insertions(+), 46 deletions(-)

diff --git a/tests/www/views/test_views_acl.py 
b/tests/www/views/test_views_acl.py
index 1394195..53c45b9 100644
--- a/tests/www/views/test_views_acl.py
+++ b/tests/www/views/test_views_acl.py
@@ -87,52 +87,35 @@ def acl_app(app):
                 **kwargs,
             )
 
-    # FIXME: Clean up this block of code.....
-
-    website_permission = security_manager.get_permission(
-        permissions.ACTION_CAN_READ, permissions.RESOURCE_WEBSITE
-    )
-
-    dag_tester_role = security_manager.find_role('dag_acl_tester')
-    edit_perm_on_dag = security_manager.get_permission(
-        permissions.ACTION_CAN_EDIT, 'DAG:example_bash_operator'
-    )
-    security_manager.add_permission_to_role(dag_tester_role, edit_perm_on_dag)
-    read_perm_on_dag = security_manager.get_permission(
-        permissions.ACTION_CAN_READ, 'DAG:example_bash_operator'
-    )
-    security_manager.add_permission_to_role(dag_tester_role, read_perm_on_dag)
-    security_manager.add_permission_to_role(dag_tester_role, 
website_permission)
-
-    all_dag_role = security_manager.find_role('all_dag_role')
-    edit_perm_on_all_dag = security_manager.get_permission(
-        permissions.ACTION_CAN_EDIT, permissions.RESOURCE_DAG
-    )
-    security_manager.add_permission_to_role(all_dag_role, edit_perm_on_all_dag)
-    read_perm_on_all_dag = security_manager.get_permission(
-        permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG
-    )
-    security_manager.add_permission_to_role(all_dag_role, read_perm_on_all_dag)
-    read_perm_on_task_instance = security_manager.get_permission(
-        permissions.ACTION_CAN_READ, permissions.RESOURCE_TASK_INSTANCE
-    )
-    security_manager.add_permission_to_role(all_dag_role, 
read_perm_on_task_instance)
-    security_manager.add_permission_to_role(all_dag_role, website_permission)
-
-    role_user = security_manager.find_role('User')
-    security_manager.add_permission_to_role(role_user, read_perm_on_all_dag)
-    security_manager.add_permission_to_role(role_user, edit_perm_on_all_dag)
-    security_manager.add_permission_to_role(role_user, website_permission)
-
-    read_only_perm_on_dag = security_manager.get_permission(
-        permissions.ACTION_CAN_READ, 'DAG:example_bash_operator'
-    )
-    dag_read_only_role = security_manager.find_role('dag_acl_read_only')
-    security_manager.add_permission_to_role(dag_read_only_role, 
read_only_perm_on_dag)
-    security_manager.add_permission_to_role(dag_read_only_role, 
website_permission)
-
-    dag_acl_faker_role = security_manager.find_role('dag_acl_faker')
-    security_manager.add_permission_to_role(dag_acl_faker_role, 
website_permission)
+    role_permissions = {
+        'dag_acl_tester': [
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_WEBSITE),
+            (permissions.ACTION_CAN_EDIT, 'DAG:example_bash_operator'),
+            (permissions.ACTION_CAN_READ, 'DAG:example_bash_operator'),
+        ],
+        'all_dag_role': [
+            (permissions.ACTION_CAN_EDIT, permissions.RESOURCE_DAG),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_TASK_INSTANCE),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_WEBSITE),
+        ],
+        'User': [
+            (permissions.ACTION_CAN_EDIT, permissions.RESOURCE_DAG),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_WEBSITE),
+        ],
+        'dag_acl_read_only': [
+            (permissions.ACTION_CAN_READ, 'DAG:example_bash_operator'),
+            (permissions.ACTION_CAN_READ, permissions.RESOURCE_WEBSITE),
+        ],
+        'dag_acl_faker': [(permissions.ACTION_CAN_READ, 
permissions.RESOURCE_WEBSITE)],
+    }
+
+    for _role, _permissions in role_permissions.items():
+        role = security_manager.find_role(_role)
+        for _action, _perm in _permissions:
+            perm = security_manager.get_permission(_action, _perm)
+            security_manager.add_permission_to_role(role, perm)
 
     yield app
 

Reply via email to