篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Flex测试mixin for Django相关的知识,希望对你有一定的参考价值。
import os
from django.conf import settings
from django.http import HttpRequest
import flex
from flex.core import validate_api_call
from flex.exceptions import ValidationError
APISPEC_PATH = os.path.join(settings.BASE_DIR, 'apispec', 'swagger.yml')
flex_schema = flex.load(APISPEC_PATH)
class FlexTestMixin:
def assertSwaggerSchema(self, response, request=None):
if not response.is_rendered:
response.render()
# 204 No Content response without content-type
# but flex expected that header
if 'Content-Type' not in response:
response['Content-Type'] = ''
try:
validate_api_call(flex_schema,
raw_request=(request or response.wsgi_request), raw_response=response)
except ValidationError as e:
self.fail(e)
# Patch original request object for prevent exception:
# "You cannot access body after reading from request's data stream"
def patched_read(self, *args, **kwargs):
self._body = original_read(self, *args, **kwargs)
return self._body
original_read = HttpRequest.read
HttpRequest.read = patched_read
以上是关于python Flex测试mixin for Django的主要内容,如果未能解决你的问题,请参考以下文章