Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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
Esempio n. 7
0
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,
    })
Esempio n. 9
0
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