def test_rebar_can_be_url_prefixed(self): app = Flask(__name__) app.testing = True rebar = Rebar() registry_v1 = rebar.create_handler_registry(prefix='v1') registry_v2 = rebar.create_handler_registry( prefix='/v2/') # Slashes shouldn't matter # We use the same endpoint to show that the swagger operationId gets set correctly # and the Flask endpoint gets prefixed register_endpoint(registry=registry_v1, endpoint='get_foo') register_endpoint(registry=registry_v2, endpoint='get_foo') rebar.init_app(app) for prefix in ('v1', 'v2'): resp = app.test_client().get( prefix_url(prefix=prefix, url='/swagger/ui/')) self.assertEqual(resp.status_code, 200) swagger = get_swagger(test_client=app.test_client(), prefix=prefix) validate_swagger(swagger) self.assertEqual( swagger['paths'][prefix_url( prefix=prefix, url='/foos/{foo_uid}')]['get']['operationId'], 'get_foo') resp = app.test_client().get( prefix_url(prefix=prefix, url='/foos/1')) self.assertEqual(resp.status_code, 200)
def test_rebar_can_be_url_prefixed(self): app = Flask(__name__) app.testing = True rebar = Rebar() registry_v1 = rebar.create_handler_registry(prefix="v1") registry_v2 = rebar.create_handler_registry( prefix="/v2/") # Slashes shouldn't matter # We use the same endpoint to show that the swagger operationId gets set correctly # and the Flask endpoint gets prefixed register_endpoint(registry=registry_v1, endpoint="get_foo") register_endpoint(registry=registry_v2, endpoint="get_foo") rebar.init_app(app) for prefix in ("v1", "v2"): resp = app.test_client().get( prefix_url(prefix=prefix, url="/swagger/ui/")) self.assertEqual(resp.status_code, 200) swagger = get_swagger(test_client=app.test_client(), prefix=prefix) validate_swagger(swagger) self.assertEqual( swagger["paths"][prefix_url( prefix=prefix, url="/foos/{foo_uid}")]["get"]["operationId"], "get_foo", ) resp = app.test_client().get( prefix_url(prefix=prefix, url="/foos/1")) self.assertEqual(resp.status_code, 200)
def get_swagger(test_client, prefix=None): url = '/swagger' if prefix: url = prefix_url(prefix=prefix, url=url) return get_json_from_resp(test_client.get(url))
def get_swagger(test_client, prefix=None): url = "/swagger" if prefix: url = prefix_url(prefix=prefix, url=url) return test_client.get(url).json