def test_throws_error_for_unimplemented_serialization(self): with self.assertRaises(NotImplementedError): parameter = api_client.HeaderParameter( name='color', content={'text/plain': schemas.AnyTypeSchema} ) parameter.serialize(None)
def test_content_json_serialization(self): name = 'color' test_cases = ( ParamTestCase( None, {'color': 'null'} ), ParamTestCase( 1, {'color': '1'} ), ParamTestCase( 3.14, {'color': '3.14'} ), ParamTestCase( 'blue', {'color': '"blue"'} ), ParamTestCase( 'hello world', {'color': '"hello world"'} ), ParamTestCase( '', {'color': '""'} ), ParamTestCase( True, {'color': 'true'} ), ParamTestCase( False, {'color': 'false'} ), ParamTestCase( [], {'color': '[]'} ), ParamTestCase( ['blue', 'black', 'brown'], {'color': '["blue", "black", "brown"]'} ), ParamTestCase( {}, {'color': '{}'} ), ParamTestCase( dict(R=100, G=200, B=150), {'color': '{"R": 100, "G": 200, "B": 150}'} ), ) for test_case in test_cases: parameter = api_client.HeaderParameter( name=name, content={'application/json': schemas.AnyTypeSchema} ) serialization = parameter.serialize(test_case.payload) self.assertEqual(serialization, test_case.expected_serialization)
def test_header_params_no_style(self): name = 'color' test_cases = ( ParamTestCase( None, {} ), ParamTestCase( 1, dict(color='1') ), ParamTestCase( 3.14, dict(color='3.14') ), ParamTestCase( 'blue', dict(color='blue') ), ParamTestCase( 'hello world', dict(color='hello%20world') ), ParamTestCase( '', dict(color='') ), ParamTestCase( True, dict(color='true') ), ParamTestCase( False, dict(color='false') ), ParamTestCase( [], {} ), ParamTestCase( ['blue', 'black', 'brown'], dict(color='blue,black,brown') ), ParamTestCase( {}, {} ), ParamTestCase( dict(R=100, G=200, B=150), dict(color='R,100,G,200,B,150') ), ) for test_case in test_cases: parameter = api_client.HeaderParameter( name=name, schema=schemas.AnyTypeSchema, ) serialization = parameter.serialize(test_case.payload) self.assertEqual(serialization, test_case.expected_serialization)
def test_throws_exception_when_invalid_name_input(self): disallowed_names = {'Accept', 'Content-Type', 'Authorization'} for disallowed_name in disallowed_names: with self.assertRaises(ValueError): api_client.HeaderParameter( name=disallowed_name, schema=schemas.StrSchema, )
'1': Model1Schema, 'aB': ABSchema, 'self': ModelSelfSchema, 'A-B': ABSchema, }, total=False) class RequestHeaderParams(RequestRequiredHeaderParams, RequestOptionalHeaderParams): pass request_header__2 = api_client.HeaderParameter( name="1", style=api_client.ParameterStyle.SIMPLE, schema=Model1Schema, ) request_header_a_b3 = api_client.HeaderParameter( name="aB", style=api_client.ParameterStyle.SIMPLE, schema=ABSchema, ) request_header__self2 = api_client.HeaderParameter( name="self", style=api_client.ParameterStyle.SIMPLE, schema=ModelSelfSchema, ) request_header_a_b4 = api_client.HeaderParameter( name="A-B", style=api_client.ParameterStyle.SIMPLE,
}) RequestOptionalHeaderParams = typing.TypedDict( 'RequestOptionalHeaderParams', { 'boolean_group': BooleanGroupSchema, }, total=False) class RequestHeaderParams(RequestRequiredHeaderParams, RequestOptionalHeaderParams): pass request_header_required_boolean_group = api_client.HeaderParameter( name="required_boolean_group", style=api_client.ParameterStyle.SIMPLE, schema=RequiredBooleanGroupSchema, required=True, ) request_header_boolean_group = api_client.HeaderParameter( name="boolean_group", style=api_client.ParameterStyle.SIMPLE, schema=BooleanGroupSchema, ) _path = '/fake' _method = 'DELETE' _auth = [ 'bearer_test', ] @dataclass
RequestOptionalHeaderParams = typing.TypedDict( 'RequestOptionalHeaderParams', { 'enum_header_string_array': EnumHeaderStringArraySchema, 'enum_header_string': EnumHeaderStringSchema, }, total=False) class RequestHeaderParams(RequestRequiredHeaderParams, RequestOptionalHeaderParams): pass request_header_enum_header_string_array = api_client.HeaderParameter( name="enum_header_string_array", style=api_client.ParameterStyle.SIMPLE, schema=EnumHeaderStringArraySchema, ) request_header_enum_header_string = api_client.HeaderParameter( name="enum_header_string", style=api_client.ParameterStyle.SIMPLE, schema=EnumHeaderStringSchema, ) # body param class SchemaForRequestBodyApplicationXWwwFormUrlencoded(DictSchema): class enum_form_string_array(ListSchema): class _items( _SchemaEnumMaker(enum_value_to_name={ ">": "GREATER_THAN",
required=True, explode=True, ) request_query_password = api_client.QueryParameter( name="password", style=api_client.ParameterStyle.FORM, schema=PasswordSchema, required=True, explode=True, ) _path = '/user/login' _method = 'GET' XRateLimitSchema = Int32Schema x_rate_limit_parameter = api_client.HeaderParameter( name="X-Rate-Limit", style=api_client.ParameterStyle.SIMPLE, schema=XRateLimitSchema, ) XExpiresAfterSchema = DateTimeSchema x_expires_after_parameter = api_client.HeaderParameter( name="X-Expires-After", style=api_client.ParameterStyle.SIMPLE, schema=XExpiresAfterSchema, ) SchemaFor200ResponseBodyApplicationXml = StrSchema SchemaFor200ResponseBodyApplicationJson = StrSchema ResponseHeadersFor200 = typing.TypedDict( 'ResponseHeadersFor200', { 'X-Rate-Limit': XRateLimitSchema, 'X-Expires-After': XExpiresAfterSchema, })
RequestRequiredHeaderParams = typing.TypedDict('RequestRequiredHeaderParams', {}) RequestOptionalHeaderParams = typing.TypedDict('RequestOptionalHeaderParams', { 'api_key': ApiKeySchema, }, total=False) class RequestHeaderParams(RequestRequiredHeaderParams, RequestOptionalHeaderParams): pass request_header_api_key = api_client.HeaderParameter( name="api_key", style=api_client.ParameterStyle.SIMPLE, schema=ApiKeySchema, ) # path params PetIdSchema = Int64Schema RequestRequiredPathParams = typing.TypedDict('RequestRequiredPathParams', { 'petId': PetIdSchema, }) RequestOptionalPathParams = typing.TypedDict('RequestOptionalPathParams', {}, total=False) class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams): pass