Best Python code snippet using locust
utils.py
Source:utils.py
...29 Decorator to validate request inputs, to match schematic Model.30 :param params:31 :return:32 """33 def serialize_errors(errors):34 """35 Serializes validation messages into JSON serializable format36 """37 serialized = {38 field: serialize_errors(error)39 if isinstance(error, FrozenDict)40 else [str(msg) for msg in error.messages]41 for field, error in dict(errors).items()42 }43 return serialized44 def decorator(fn):45 @wraps(fn)46 def wrapper(*args, **kwargs):47 try:48 data = params(request.json)49 data.validate()50 except DataError as err:51 error = serialize_errors(err.messages)52 raise TinyHRError(error)53 return fn(*args, **kwargs)54 return wrapper55 return decorator56def admin_required(fn):57 @wraps(fn)58 def decorated_function(*args, **kwargs):59 if not (current_user and current_user.is_admin):60 raise TinyHRError("You are not allowed to perform this action", 403)61 return fn(*args, **kwargs)62 return decorated_function63def file_types_required(allowed_types=None):64 """65 Decorator for endpoints with file upload, to safe-guard...
request.py
Source:request.py
1from functools import wraps2from project.libs.dataclasses import asdict3from project.libs.response import ErrorTypes, FieldError, ItemResp, Status4def serialize_errors(data, prefix=""):5 errors = []6 if prefix:7 prefix = prefix + "."8 for key, value in data.items():9 if isinstance(value, dict):10 key = str(key)11 errors.update(serialize_errors(value, prefix=prefix + key))12 else:13 field_name = prefix + key14 for error in value:15 if error == "Field may not be null.":16 error = FieldError(17 field=field_name,18 type=ErrorTypes.required,19 msg="Required field",20 )21 else:22 error = FieldError(23 field=field_name,24 type=ErrorTypes.invalid,25 msg=error.rstrip("."),26 )27 errors.append(error)28 return errors29def validate(req, schema, many=False):30 data = req31 if not isinstance(data, dict):32 data = asdict(req)33 schema = schema(data=data, many=many)34 if not schema.is_valid():35 errors = serialize_errors(schema.errors)36 return ItemResp(status=Status.invalid, errors=errors)37 req = schema.save()38 return ItemResp(item=req)39def validate_request(*args, schema=None, many=False):40 def wrapper(func):41 @wraps(func)42 def decorator(self, *args, **kwargs):43 req = args[0]44 result = validate(req, schema=schema, many=many)45 if not result.ok:46 return result47 args = [result.item, *args[1:]]48 return func(self, *args, **kwargs)49 return decorator...
error_handler.py
Source:error_handler.py
...11 errors: List[ErrorSingleSchema]12 class Config:13 extra = 'forbid'14def handle_error(err):15 serialize_errors = err.serialize_errors()16 error_out = ErrorListSchema(errors=serialize_errors).dict()...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!