1. 19 Apr, 2021 2 commits
  2. 16 Apr, 2021 2 commits
  3. 15 Apr, 2021 1 commit
  4. 11 Apr, 2021 3 commits
  5. 10 Apr, 2021 5 commits
  6. 02 Apr, 2021 2 commits
  7. 31 Mar, 2021 1 commit
    • pgjones's avatar
      Allow a scope_base argument to test methods · 287f259b
      pgjones authored
      This allows a set of scope values to be set, specifically the `client`
      value as this allows the remote address to be controlled during
      testing. This in turn will allow the Quart-Rate-Limiter tests to pass.
      287f259b
  8. 28 Mar, 2021 4 commits
    • pgjones's avatar
      Make the NoAppException clearer · f323a8df
      pgjones authored
      This should make the original error clearer by noting it as the direct
      cause of the NoAppException error.
      f323a8df
    • pgjones's avatar
      Bugfix unhandled exception handling · ed248c66
      pgjones authored
      Following the change to utilise Werkzeug's exceptions the
      handle_exception methods can be updated to have the same logic as
      Flask - which ensures the correct exception is received by a catch-all
      errorhandler.
      
      Note this also updates the make_response method to accept a
      HTTPException. This is a subset of what Flask accepts (any WSGI
      callable) but should match the likely use-cases.
      ed248c66
    • pgjones's avatar
      Bugfix only show the traceback response if propagating exceptions · cb3b1574
      pgjones authored
      The traceback response is meant as a debugging helper and as such
      should only be shown if an error intentionally reaches ther asgi layer
      i.e. if propagating exceptions. This better matches expectations from
      Flask.
      cb3b1574
    • pgjones's avatar
      Bugfix adopt Werkzeug's timestamp parsing · 0b429a5a
      pgjones authored
      This uses the Response last_modified setter to parse the timestamp,
      which is consistent with Flask and also fixes a DST bug.
      0b429a5a
  9. 27 Mar, 2021 1 commit
  10. 24 Mar, 2021 2 commits
  11. 21 Mar, 2021 3 commits
  12. 17 Mar, 2021 4 commits
    • pgjones's avatar
      Switch to using Werkzeug's Sans-IO wrappers · fd4dc758
      pgjones authored
      This also matches Werkzeug's API - frustrating though the `raw`
      argument has changed to `as_text` i.e. one being the logical not
      of the other.
      
      The form parser stream API is not final, as it should probably be
      async. The FileStorage API has changed to now be async for saving.
      
      Some of the code in this patch is taken from a patch I've written for
      Werkzeug.
      fd4dc758
    • pgjones's avatar
      Switch to Werkzeug's locals · d048e8f7
      pgjones authored
      This is possible now that Werkzeug uses ContextVars - note though the
      runtime check incase it doesn't (which shouldn't be possible in
      environments where Quart can run).
      
      I've decided to type the globals specifically as the object they proxy
      too. I think this is best for users as they expect this API and not
      the LocalProxy API. I'm also unsure how to type proxies in Python.
      d048e8f7
    • pgjones's avatar
      Remove Quart's exceptions and use Werkzeug's · 4da1b58f
      pgjones authored
      This is possible now that Quart can serve Werkzeug's responses, and it
      ensures that Quart has the same exception API and exceptions as
      Werkzeug.
      4da1b58f
    • pgjones's avatar
      Support handlers returning a Werkzeug Response · 2d0e5f43
      pgjones authored
      This makes it possible to use the Werkzeug exceptions directly, as the
      exception response can now be returned (see for example the flask
      patch changes). This is now possible with the new Werkzeug 2.0
      release, with the pre release currently used.
      2d0e5f43
  13. 15 Mar, 2021 1 commit
  14. 08 Mar, 2021 1 commit
    • pgjones's avatar
      Add syntatic sugar for route registration · 66ca5943
      pgjones authored
      This takes a popular API whereby instead of passing the HTTP method as
      an argument to route it is instead used as the method name i.e.
      
          @app.route("/", methods=["POST"])
      
      is now writeable as,
      
          @app.post("/")
      
      This is simply syntatic sugar, it doesn't do anything else, but makes
      it slightly easier for users.
      
      I've included all the methods that are relevant and aren't auto
      generated i.e. not connect, head, options, and trace.
      
      This follows an equivalent commit in Flask.
      66ca5943
  15. 07 Mar, 2021 2 commits
  16. 21 Feb, 2021 2 commits
    • pgjones's avatar
      Add a Scaffold base class · 94767a59
      pgjones authored
      This follows a similar change in Flask, and co-locates common
      functionality in the Quart and Blueprint classes.
      
      I've also fixed some missing/broken APIs as part of ensuring the post
      Scaffold changes make sense.
      94767a59
    • Luís's avatar
      Fix typo · e6c88569
      Luís authored
      e6c88569
  17. 02 Feb, 2021 1 commit
  18. 31 Jan, 2021 1 commit
  19. 30 Jan, 2021 2 commits