예제 #1
0
파일: tests_rbac.py 프로젝트: ebpetway/koku
 def test_process_acls_multiple(self):
     """Test function of _process_acls with a bad permission format."""
     acls = [
         {"permission": "cost-management:provider:read", "resourceDefinitions": []},
         {
             "permission": "cost-management:provider:write",
             "resourceDefinitions": [
                 {"attributeFilter": {"key": "cost-management.provider", "operation": "in", "value": "1,3,5"}}
             ],
         },
         {
             "permission": "cost-management:provider:write",
             "resourceDefinitions": [
                 {"attributeFilter": {"key": "cost-management.provider", "operation": "equal", "value": "8"}}
             ],
         },
     ]
     access = _process_acls(acls)  # pylint: disable=protected-access
     expected = {
         "provider": [
             {"operation": "read", "resources": ["*"]},
             {"operation": "write", "resources": ["1", "3", "5"]},
             {"operation": "write", "resources": ["8"]},
         ]
     }
     print()
     print(access)
     self.assertEqual(access, expected)
예제 #2
0
 def test_process_acls_attributeFilter_value_list(self):
     """Test that we correctly handle a list of values."""
     acls = [
         {
             "permission": "cost-management:cost_model:read",
             "resourceDefinitions": []
         },
         {
             "permission":
             "cost-management:cost_model:write",
             "resourceDefinitions": [{
                 "attributeFilter": {
                     "key": "cost-management.cost_model",
                     "operation": "in",
                     "value": ["1", "3", "5"],
                 }
             }],
         },
     ]
     access = _process_acls(acls)
     expected = {
         "cost_model": [
             {
                 "operation": "read",
                 "resources": ["*"]
             },
             {
                 "operation": "write",
                 "resources": ["1", "3", "5"]
             },
         ]
     }
     self.assertEqual(access, expected)
예제 #3
0
파일: tests_rbac.py 프로젝트: xJustin/koku
 def test_process_acls_rate_to_cost_model_substitution(self):
     """Test function of _process_acls with a bad permission format."""
     acls = [
         {"permission": "cost-management:rate:read", "resourceDefinitions": []},
         {
             "permission": "cost-management:rate:write",
             "resourceDefinitions": [
                 {"attributeFilter": {"key": "cost-management.rate", "operation": "in", "value": "1,3,5"}}
             ],
         },
         {
             "permission": "cost-management:rate:write",
             "resourceDefinitions": [
                 {"attributeFilter": {"key": "cost-management.rate", "operation": "equal", "value": "8"}}
             ],
         },
     ]
     access = _process_acls(acls)
     expected = {
         "cost_model": [
             {"operation": "read", "resources": ["*"]},
             {"operation": "write", "resources": ["1", "3", "5"]},
             {"operation": "write", "resources": ["8"]},
         ]
     }
     self.assertEqual(access, expected)
예제 #4
0
 def test_process_acls_bad_permission(self):
     """Test function of _process_acls with a bad permission format."""
     acls = [
         {
             'permission': 'bad_permission'
         }
     ]
     access = _process_acls(acls)  # pylint: disable=protected-access
     self.assertIsNone(access)
예제 #5
0
 def test_process_acls_multiple(self):
     """Test function of _process_acls with a bad permission format."""
     acls = [{
         'permission': 'cost-management:provider:read',
         'resourceDefinitions': []
     }, {
         'permission':
         'cost-management:provider:write',
         'resourceDefinitions': [{
             'attributeFilter': {
                 'key': 'cost-management.provider',
                 'operation': 'in',
                 'value': '1,3,5'
             }
         }]
     }, {
         'permission':
         'cost-management:provider:write',
         'resourceDefinitions': [{
             'attributeFilter': {
                 'key': 'cost-management.provider',
                 'operation': 'equal',
                 'value': '8'
             }
         }]
     }]
     access = _process_acls(acls)  # pylint: disable=protected-access
     expected = {
         'provider': [{
             'operation': 'read',
             'resources': ['*']
         }, {
             'operation': 'write',
             'resources': ['1', '3', '5']
         }, {
             'operation': 'write',
             'resources': ['8']
         }]
     }
     print()
     print(access)
     self.assertEqual(access, expected)
예제 #6
0
 def test_process_acls_bad_permission(self):
     """Test function of _process_acls with a bad permission format."""
     acls = [{"permission": "bad_permission"}]
     access = _process_acls(acls)
     self.assertIsNone(access)