async def test_param(self): users = await respool.first_user() await self._test_api( api_=User().api_BatchSetDesktopManager, users__1=ParamSchema( valid_values=[users[0].end_user_id], invalid_values=[None], error_codes=['MissingUsers'] ), is_desktop_manager=ParamSchema( valid_values=[0, 1, None], invalid_values=['invalid@无效'], error_codes=['ServiceUnavailable'] ) )
时间: 2024-02-15 14:27:52 浏览: 136
这段代码看起来是一个异步函数,其中调用了一个名为respool的对象的first_user()方法获取用户信息,然后调用了一个名为_test_api()的方法,传入了三个参数:api_表示要测试的API接口,users__1表示一个名为ParamSchema的参数模式,包含了valid_values、invalid_values和error_codes等信息,is_desktop_manager也是ParamSchema类型的参数模式,包含了相应的有效和无效值以及错误代码。这段代码可能是用于进行API接口测试的。
相关问题
async def test_param(self): desktop = await respool.first_desktop(desktop_status=DesktopStatus.RUNNING, charge_type='PrePaid') async with desktop: await self._test_api( api_=Desktop().api_DescribeRefundPrice, refund_type=ParamSchema( valid_values=[None, 'RemainRefund'], invalid_values=['invalid@无效'], error_codes=['InvalidRefundType.ValueNotSupported'] ), refund_param_map=ParamSchema( valid_values=[None, '{ "IsChargeTypeConvertOrder":"true","refundNotRelease":"true","refundNotFinishPurchase":"true" }'], invalid_values=['invalid@无效'], error_codes=['InvalidRefundPriceParamType.ValueNotSupported'] ), desktop_id__1=ParamSchema( valid_values=[desktop.desktop_id], invalid_values=[None, 'invalid@无效'], error_codes=['MissingDesktopId', 'InvalidDesktopId.ValueNotSupported'] ) )
这段代码是一个方法,用于测试Desktop类的api_DescribeRefundPrice方法的参数。其中,首先通过respool.first_desktop方法获取一个运行中且计费方式为PrePaid的桌面对象,然后使用async with语句将桌面锁定,避免其他协程同时对其进行操作。接着,使用_test_api方法对api_DescribeRefundPrice的三个参数进行测试:refund_type,refund_param_map和desktop_id__1。其中,ParamSchema定义了每个参数的有效值、无效值和对应的错误代码,目的是验证api_DescribeRefundPrice方法对参数的处理是否符合预期。
import uvicorn from fastapi import FastAPI, UploadFile, File from io import BytesIO from PIL import Image, ImageDraw from utils.operation import YOLO def detect(onnx_path='ReqFile/yolov5n-7-k5.onnx', img=r'ReqFile/bus.jpg', show=True): ''' 检测目标,返回目标所在坐标如: {'crop': [57, 390, 207, 882], 'classes': 'person'},...] :param onnx_path:onnx模型路径 :param img:检测用的图片 :param show:是否展示 :return: ''' yolo = YOLO(onnx_path=onnx_path) # 加载yolo类 det_obj = yolo.decect(img) # 检测 # 打印检测结果 print(det_obj) # 画框框 if show: img = Image.open(img) draw = ImageDraw.Draw(img) for i in range(len(det_obj)): draw.rectangle(det_obj[i]['crop'], width=3) img.show() # 展示 return det_obj app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.post("/detect/") async def create_upload_file(file: UploadFile = File(...)): contents = await file.read() # 接收浏览器上传的图片 im1 = BytesIO(contents) # 将数据流转换成二进制文件存在内存中 # 返回结果 return detect(onnx_path='ReqFile/best-0206.onnx', img=im1, show=False) # 启动项目 if __name__ == "__main__": uvicorn.run(app='main:app', port=8000, host='0.0.0.0', reload=True)
这是一个使用 FastAPI 和 YOLO 模型进行目标检测的 Python 代码。其中 `detect()` 函数接收一个 ONNX 模型路径和图片,使用 YOLO 模型进行目标检测,并返回检测结果。`create_upload_file()` 函数用于接收浏览器上传的图片,调用 `detect()` 函数进行目标检测,并返回检测结果。最后使用 Uvicorn 启动项目。
阅读全文