你可以用
patch
从
unittest
在架构生成期间,将根据权限列表检查每个视图的请求对象。我们宣布他们
permission_classes
属性,它们通常具有
has_permission
exceptions.APIException
,
Http404
,
PermissionDenied
)例外情况下,生成器跳过该视图。
如果你想修补
IsAuthenticated
你可以这样做:
from unittest.mock import patch
from rest_framework_swagger.views import get_swagger_view
def patch_the_method(func):
def inner(*args, **kwargs):
with patch('rest_framework.permissions.IsAuthenticated.has_permission', return_value=True):
response = func(*args, **kwargs)
return response
return inner
schema_view = patch_the_method(get_swagger_view(title='Some API'))
请注意,这不会将具有其他权限的视图包含到架构中。为了避免修补所有权限类,可以从中修补方法
SchemaGenerator
调用的类
has_view_permissions
.
...
with patch('rest_framework.schemas.SchemaGenerator.has_view_permissions', return_value=True):
...