def _validate_against_tween(request, response=None, path_pattern='/', **overrides): """ Acceptance testing helper for testing the swagger tween with Swagger 2.0 responses. :param request: pyramid request :param response: standard fixture by default :param path_pattern: Path pattern eg. /foo/{bar} :param overrides: dict of overrides for `pyramid_swagger` config """ def handler(request): return response or Response() settings = dict( { 'pyramid_swagger.schema_directory': 'tests/sample_schemas/good_app/', 'pyramid_swagger.enable_swagger_spec_validation': False, 'pyramid_swagger.enable_response_validation': True, 'pyramid_swagger.swagger_versions': ['2.0'] }, **overrides) spec = get_swagger_spec(settings) settings['pyramid_swagger.schema12'] = None settings['pyramid_swagger.schema20'] = spec registry = get_registry(settings) # This is a little messy because the current flow of execution doesn't # set up the route_info in pyramid. Have to mock out the `route_info` # so that usages in the tween meet expectations. Holler if you know a # better way to do this! op = spec.get_op_for_request(request.method, path_pattern) mock_route_info = {'match': request.matchdict, 'route': None} mock_route_mapper = Mock(spec=IRoutesMapper, return_value=mock_route_info) with patch('pyramid_swagger.tween.get_op_for_request', return_value=op): with patch('pyramid.registry.Registry.queryUtility', return_value=mock_route_mapper): validation_tween_factory(handler, registry)(request)
def _validate_against_tween(request, response=None, path_pattern='/', **overrides): """ Acceptance testing helper for testing the swagger tween with Swagger 2.0 responses. :param request: pyramid request :param response: standard fixture by default :param path_pattern: Path pattern eg. /foo/{bar} :param overrides: dict of overrides for `pyramid_swagger` config """ def handler(request): return response or Response() settings = dict({ 'pyramid_swagger.schema_directory': 'tests/sample_schemas/good_app/', 'pyramid_swagger.enable_swagger_spec_validation': False, 'pyramid_swagger.enable_response_validation': True, 'pyramid_swagger.swagger_versions': ['2.0']}, **overrides ) spec = get_swagger_spec(settings) settings['pyramid_swagger.schema12'] = None settings['pyramid_swagger.schema20'] = spec registry = get_registry(settings) # This is a little messy because the current flow of execution doesn't # set up the route_info in pyramid. Have to mock out the `route_info` # so that usages in the tween meet expectations. Holler if you know a # better way to do this! op = spec.get_op_for_request(request.method, path_pattern) mock_route_info = {'match': request.matchdict, 'route': None} mock_route_mapper = Mock(spec=IRoutesMapper, return_value=mock_route_info) with patch('pyramid_swagger.tween.get_op_for_request', return_value=op): with patch('pyramid.registry.Registry.queryUtility', return_value=mock_route_mapper): validation_tween_factory(handler, registry)(request)
def build_config(schema_dir): return mock.Mock( registry=get_registry({ 'swagger_schema': get_swagger_schema(schema_dir), }))
def build_config(schema_dir): return mock.Mock( registry=get_registry({ 'swagger_schema': get_swagger_schema(schema_dir), }) )
def build_config(schema_dir): return mock.Mock( registry=get_registry({'pyramid_swagger.schema_directory': schema_dir}) )