Source code for swagger_server.test.controllers.test_roleresourcepermission_controller

# coding: utf-8

from __future__ import absolute_import
import random
import uuid

import werkzeug
from flask import json

from project.settings import API_KEY_HEADER
from swagger_server.models.role_resource_permission import RoleResourcePermission  # noqa: E501
from swagger_server.models.role_resource_permission_create import RoleResourcePermissionCreate  # noqa: E501
from swagger_server.models.role import Role  # noqa: E501
from swagger_server.models.resource import Resource  # noqa: E501
from swagger_server.models.permission import Permission  # noqa: E501
from swagger_server.test import BaseTestCase
from ge_core_shared import db_actions, decorators


[docs]class RoleResourcePermissionTestCase(BaseTestCase):
[docs] @decorators.db_exception def setUp(self): super().setUp() self.role_data = { "label": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } self.role_model = db_actions.crud( model="Role", api_model=Role, data=self.role_data, action="create" ) self.resource_data = { "urn": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } self.resource_model = db_actions.crud( model="Resource", api_model=Resource, data=self.resource_data, action="create" ) self.permission_data = { "name": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } self.permission_model = db_actions.crud( model="Permission", api_model=Permission, data=self.permission_data, action="create" ) self.role_resource_permission_data = { "role_id": self.role_model.id, "resource_id": self.resource_model.id, "permission_id": self.permission_model.id, } self.role_resource_permission_model = db_actions.crud( model="RoleResourcePermission", api_model=RoleResourcePermission, data=self.role_resource_permission_data, action="create" ) self.headers = {API_KEY_HEADER: "test-api-key"}
[docs] def test_role_resource_permission_create(self): """Test case for role_resource_permission_create """ role_data = { "label": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } role_model = db_actions.crud( model="Role", api_model=Role, data=role_data, action="create" ) resource_data = { "urn": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } resource_model = db_actions.crud( model="Resource", api_model=Resource, data=resource_data, action="create" ) permission_data = { "name": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } permission_model = db_actions.crud( model="Permission", api_model=Permission, data=permission_data, action="create" ) data = RoleResourcePermissionCreate(**{ "role_id": self.role_model.id, "resource_id": resource_model.id, "permission_id": permission_model.id, }) response = self.client.open( '/api/v1/roleresourcepermissions', method='POST', data=json.dumps(data), content_type='application/json', headers=self.headers) r_data = json.loads(response.data) self.assertEqual(r_data["role_id"], data.role_id) self.assertEqual(r_data["resource_id"], data.resource_id) self.assertEqual(r_data["permission_id"], data.permission_id)
[docs] def test_role_resource_permission_read(self): """Test case for role_resource_permission_read """ response = self.client.open( '/api/v1/roleresourcepermissions/{role_id}/{resource_id}/{permission_id}'.format( role_id=self.role_resource_permission_model.role_id, resource_id=self.role_resource_permission_model.resource_id, permission_id=self.role_resource_permission_model.permission_id, ), method='GET', headers=self.headers) r_data = json.loads(response.data) self.assertEqual(r_data["role_id"], self.role_resource_permission_model.role_id) self.assertEqual(r_data["resource_id"], self.role_resource_permission_model.resource_id) self.assertEqual(r_data["permission_id"], self.role_resource_permission_model.permission_id)
[docs] def test_role_resource_permission_delete(self): """Test case for role_resource_permission_delete """ role_data = { "label": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } role_model = db_actions.crud( model="Role", api_model=Role, data=role_data, action="create" ) resource_data = { "urn": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } resource_model = db_actions.crud( model="Resource", api_model=Resource, data=resource_data, action="create" ) permission_data = { "name": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } permission_model = db_actions.crud( model="Permission", api_model=Permission, data=permission_data, action="create" ) role_resource_permission_data = { "role_id": role_model.id, "resource_id": resource_model.id, "permission_id": permission_model.id, } model = db_actions.crud( model="RoleResourcePermission", api_model=RoleResourcePermission, data=role_resource_permission_data, action="create" ) response = self.client.open( '/api/v1/roleresourcepermissions/{role_id}/{resource_id}/{permission_id}'.format( role_id=model.role_id, resource_id=model.resource_id, permission_id=model.permission_id, ), method='DELETE', headers=self.headers) with self.assertRaises(werkzeug.exceptions.NotFound): db_actions.crud( model="RoleResourcePermission", api_model=RoleResourcePermission, action="read", query={ "role_id": model.role_id, "resource_id": model.resource_id, "permission_id": model.permission_id, } )
[docs] def test_role_resource_permission_list(self): """Test case for role_resource_permission_list """ objects = [] role_data = { "label": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } role_model = db_actions.crud( model="Role", api_model=Role, data=role_data, action="create" ) for index in range(1, random.randint(5, 20)): resource_data = { "urn": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } resource_model = db_actions.crud( model="Resource", api_model=Resource, data=resource_data, action="create" ) permission_data = { "name": ("%s" % uuid.uuid1())[:30], "description": "role_resource_permission to create", } permission_model = db_actions.crud( model="Permission", api_model=Permission, data=permission_data, action="create" ) role_resource_permission_data = { "role_id": role_model.id, "resource_id": resource_model.id, "permission_id": permission_model.id, } objects.append(db_actions.crud( model="RoleResourcePermission", api_model=RoleResourcePermission, data=role_resource_permission_data, action="create" )) print ("Role: %s" % role_model.id) query_string = [#('offset', 0), ('role_id', role_model.id), ] response = self.client.open( '/api/v1/roleresourcepermissions', method='GET', query_string=query_string, headers=self.headers) r_data = json.loads(response.data) self.assertEqual(len(r_data), len(objects)) self.assertEqual(int(response.headers["X-Total-Count"]), len(objects)) query_string = [#('offset', 0), ('limit', 2), ('role_id', role_model.id), ] response = self.client.open( '/api/v1/roleresourcepermissions', method='GET', query_string=query_string, headers=self.headers) r_data = json.loads(response.data) self.assertEqual(len(r_data), 2) self.assertEqual(int(response.headers["X-Total-Count"]), len(objects))
#def test_role_resource_permission_update(self): # """Test case for role_resource_permission_update # """ # data = { # "name": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission to update", # } # model = db_actions.crud( # model="RoleResourcePermission", # api_model=RoleResourcePermission, # data=data, # action="create" # ) # data = { # "name": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission updated", # } # role_data = { # "label": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission to create", # } # role_model = db_actions.crud( # model="Role", # api_model=Role, # data=role_data, # action="create" # ) # resource_data = { # "urn": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission to create", # } # resource_model = db_actions.crud( # model="Resource", # api_model=Resource, # data=resource_data, # action="create" # ) # permission_data = { # "name": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission to create", # } # permission_model = db_actions.crud( # model="Permission", # api_model=Permission, # data=permission_data, # action="create" # ) # role_resource_permission_data = { # "role_id": role_model.id, # "resource_id": resource_model.id, # "permission_id": permission_model.id, # } # role_resource_permission_model = db_actions.crud( # model="RoleResourcePermission", # api_model=RoleResourcePermission, # data=role_resource_permission_data, # action="create" # ) # # Change permission on the model. # permission_data = { # "name": ("%s" % uuid.uuid1())[:30], # "description": "role_resource_permission to create", # } # permission_model = db_actions.crud( # model="Permission", # api_model=Permission, # data=permission_data, # action="create" # ) # data = { # "role_id": role_model.id, # "resource_id": resource_model.id, # "permission_id": permission_model.id, # } # data = RoleResourcePermissionCreate( # **data # ) # response = self.client.open( # '/api/v1/roleresourcepermissions/{role_id}/{resource_id}/{permission_id}'.format( # role_id=self.role_resource_permission_model.role_id, # resource_id=self.role_resource_permission_model.role_id, # permission_id=self.role_resource_permission_model.role_id, # ), # method='PUT', # data=json.dumps(data), # content_type='application/json') # r_data = json.loads(response.data) # updated_entry = db_actions.crud( # model="RoleResourcePermission", # api_model=RoleResourcePermission, # action="read", # query={ # "role_id": data.role_id, # "resource_id": data.resource_id, # "permission_id": data.permission_id # } # ) # self.assertEqual(r_data["role_id"], updated_entry.role_id) # self.assertEqual(r_data["resource_id"], updated_entry.resource_id) # self.assertEqual(r_data["permission_id"], updated_entry.permission_id)