Comments (5)
@sinisaos Yeah, I saw the PR in the Starlette repo reverting it. The problem though is even if it gets merged today, FastAPI lags behind the latest version of Starlette, so we'd have to wait a while before our tests pass again.
I think the only solutions for an immediate fix are version pinning FastAPI to an older version (before Starlette changed how the TestClient
works), or use httpx
directly. I didn't want to use the httpx
approach in Piccolo Admin, because loads of the tests were failing, so just version pinned FastAPI in the tests.
from piccolo_api.
@sinisaos Interesting - so it just effects the tests? If it broke RateLimitingMiddleware
that would be bad, as it's used by Piccolo Admin.
from piccolo_api.
I think I'd rather fix the test somehow, as the problem is related to the changes to TestClient
.
I sometimes use the httpx.Client
directly instead of TestClient
- maybe it doesn't have the same problem.
from piccolo_api.
@sinisaos Thanks for reporting this. I have a fix for now.
from piccolo_api.
@dantownsend I don't think all these changes to the Piccolo API and Admin were necessary because if the Starlette testclient reverts back to provide scope client (there is a PR for that), all the tests will pass again. Apologies if I wasn't clear enough in my previous comment, but the rate limit is only broken in tests, not in real use. With the changes I suggested in the comment, there was no need to change the code (except the dispatch method) in the Piccolo API and Piccolo Admin, regardless of whether Starlette revert client scope to testclient or leaves it to None
as it is now. But it doesn't matter because you already make all these changes in both repositories and they work.
from piccolo_api.
Related Issues (20)
- TypeError: __init__() got an unexpected keyword argument 'excluded_paths' HOT 5
- Feature to modify body and query_parameters in `PiccoloCRUD` HOT 8
- Fix code scanning alert - Unused global variable
- Batch version of the get endpoint HOT 6
- Drop Python 3.7 support
- Catch foreign key constraint errors in `PiccoloCRUD`
- `schema_extra` param not passed to `pydantic_model_{output | optional | plural}` methods HOT 1
- Piccolo Admin API docs are not rendering
- Better error display on PATCH request
- Alpha version for Pydantic 2.0 / Piccolo 1.0a1? HOT 2
- PiccoloCRUD `post_single` return id of the inserted row instead of the row HOT 3
- Add `ne` operator
- Python 3.12 support
- Stop multi-dimensional arrays from breaking
- Issue with updating and bulk updating `BaseUser` via admin panel HOT 15
- Updating middleware syntax HOT 6
- Make `default-src` configurable in `CSPMiddleware`
- Hide parameter in Validators to hide Piccolo Admin table link from sidebar if the validators fail. HOT 8
- Add `excluded_paths` to `SessionsAuthBackend`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from piccolo_api.