python-restx / flask-restx

Fork of Flask-RESTPlus: Fully featured framework for fast, easy and documented API development with Flask
https://flask-restx.readthedocs.io/en/latest/
Other
2.16k stars 335 forks source link

Tests fail with `flask==3.1.0` #626

Open ancieg opened 1 week ago

ancieg commented 1 week ago

Repro Steps

  1. Run test-suite with flask==3.1.0
  2. Broken!

Expected Behavior

Tests pass.

Actual Behavior

Tests fail.

Error Messages/Stack Trace

=================================== FAILURES ===================================
______________ SwaggerTest.test_specs_endpoint_host_and_subdomain ______________

self = <tests.test_swagger.SwaggerTest object at 0x7f604d793770>
app = <Flask 'tests.conftest'>, client = <TestClient <Flask 'tests.conftest'>>

    @pytest.mark.options(server_name="restx.org")
    def test_specs_endpoint_host_and_subdomain(self, app, client):
        blueprint = Blueprint("api", __name__, subdomain="api")
        restx.Api(blueprint)
        app.register_blueprint(blueprint)

>       data = client.get_specs(base_url="http://api.restx.org")

tests/test_swagger.py:182:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/conftest.py:42: in get_specs
    return self.get_json("{0}/swagger.json".format(prefix), status=status, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <TestClient <Flask 'tests.conftest'>>, url = '/swagger.json'
status = 200, kwargs = {'base_url': 'http://api.restx.org'}
response = <WrapperTestResponse streamed [404 NOT FOUND]>, @py_assert1 = 404
@py_assert3 = False
@py_format5 = '404\n{404 = <WrapperTestResponse streamed [404 NOT FOUND]>.status_code\n} == 200'
@py_format7 = 'assert 404\n{404 = <WrapperTestResponse streamed [404 NOT FOUND]>.status_code\n} == 200'

    def get_json(self, url, status=200, **kwargs):
        response = self.get(url, **kwargs)
>       assert response.status_code == status
E       assert 404 == 200
E        +  where 404 = <WrapperTestResponse streamed [404 NOT FOUND]>.status_code

tests/conftest.py:25: AssertionError

Environment

Additional information

The regression encountered just after updating to flask==3.1.0, no other packages updated.