Пример #1
0
    def _decorator(
        f: Callable[..., Coroutine[Any, Any, HTTPResponse]]
    ) -> Callable[..., Coroutine[Any, Any, HTTPResponse]]:
        @validate(
            location=Location.HEADERS,
            is_dummy=IntegerBoolField(
                required=True,
                allow_strings=True,
                data_key=HeaderImmuniDummyData.DATA_KEY,
            ),
        )
        @doc.consumes(HeaderImmuniDummyData(),
                      location="header",
                      required=True)
        async def _wrapper(*args: Any, is_dummy: bool,
                           **kwargs: Any) -> HTTPResponse:
            if is_dummy:
                await wait_configured_time(
                    mu=config.DUMMY_REQUEST_TIMEOUT_MILLIS,
                    sigma=config.DUMMY_REQUEST_TIMEOUT_SIGMA)
                selected_response = weighted_random(responses)
                if isinstance(selected_response, ApiException):
                    raise selected_response
                return selected_response
            return await f(*args, **kwargs)

        return _wrapper
def test_integerbool_field_raises(value: Any) -> None:
    with raises(ValidationError):
        IntegerBoolField()._deserialize(value, None, None)
def test_integerbool_field(value: int) -> None:
    IntegerBoolField()._deserialize(value, None, None)
@doc.consumes(
    UploadDoc, location="body", required=True, content_type="application/json; charset=utf-8"
)
@doc.consumes(HeaderImmuniDummyData(), location="header", required=True)
@doc.consumes(HeaderImmuniClientClock(), location="header", required=True)
@doc.consumes(HeaderImmuniContentTypeJson(), location="header", required=True)
@doc.consumes(HeaderImmuniAuthorizationOtpSha(), location="header", required=True)
@doc_exception(SchemaValidationException)
@doc.response(
    HTTPStatus.NO_CONTENT.value, None, description="Upload completed successfully.",
)
@validate(
    location=Location.HEADERS,
    client_clock=fields.Integer(required=True, data_key=HeaderImmuniClientClock.DATA_KEY),
    is_dummy=IntegerBoolField(
        required=True, allow_strings=True, data_key=HeaderImmuniDummyData.DATA_KEY,
    ),
)
@validate(
    location=Location.JSON,
    province=Province(),
    teks=fields.Nested(
        TemporaryExposureKeySchema, required=True, many=True, validate=TekListValidator()
    ),
    exposure_detection_summaries=fields.Nested(
        ExposureDetectionSummarySchema, required=True, many=True,
    ),
    padding=fields.String(validate=Regexp(r"^[a-zA-Z0-9]*$")),
)
@validate_token_format
@cache(no_store=True)