def get_swagger_spec(settings): """Return a :class:`bravado_core.spec.Spec` constructed from the swagger specs in `pyramid_swagger.schema_directory`. If `pyramid_swagger.enable_swagger_spec_validation` is enabled the schema will be validated before returning it. :param settings: a pyramid registry settings with configuration for building a swagger schema :type settings: dict :rtype: :class:`bravado_core.spec.Spec` """ schema_dir = settings.get('pyramid_swagger.schema_directory', 'api_docs/') schema_filename = settings.get('pyramid_swagger.schema_file', 'swagger.json') schema_path = os.path.join(schema_dir, schema_filename) schema_url = urlparse.urljoin('file:', pathname2url(os.path.abspath(schema_path))) handlers = build_http_handlers(None) # don't need http_client for file: file_handler = handlers['file'] spec_dict = file_handler(schema_url) return Spec.from_dict( spec_dict, config=create_bravado_core_config(settings), origin_url=schema_url)
def get_swagger_spec(settings): """Return a :class:`bravado_core.spec.Spec` constructed from the swagger specs in `pyramid_swagger.schema_directory`. If `pyramid_swagger.enable_swagger_spec_validation` is enabled the schema will be validated before returning it. :param settings: a pyramid registry settings with configuration for building a swagger schema :type settings: dict :rtype: :class:`bravado_core.spec.Spec` """ schema_dir = settings.get('pyramid_swagger.schema_directory', 'api_docs/') schema_filename = settings.get('pyramid_swagger.schema_file', 'swagger.json') schema_path = os.path.join(schema_dir, schema_filename) schema_url = urlparse.urljoin('file:', pathname2url(os.path.abspath(schema_path))) handlers = build_http_handlers(None) # don't need http_client for file: file_handler = handlers['file'] spec_dict = file_handler(schema_url) return Spec.from_dict(spec_dict, config=create_bravado_core_config(settings), origin_url=schema_url)
def _build_http_client(content): # required for py27/py34 compatibility if hasattr(content, 'decode'): content = content.decode("utf-8") mock_response = mock.Mock() mock_response.content = StringIO(content) mock_response.json.side_effect = lambda *args, **kwargs: json.loads(content) mock_http_client = mock.Mock() result_func = mock_http_client.request.return_value.result result_func.return_value = mock_response handlers = build_http_handlers(mock_http_client) return handlers, mock_response
def _build_http_client(content): # required for py27/py34 compatibility if hasattr(content, 'decode'): content = content.decode("utf-8") mock_response = mock.Mock() mock_response.content = StringIO(content) mock_response.json.side_effect = lambda *args, **kwargs: json.loads(content ) mock_http_client = mock.Mock() result_func = mock_http_client.request.return_value.result result_func.return_value = mock_response handlers = build_http_handlers(mock_http_client) return handlers, mock_response