Comments (5)
I don't know... that doesn't appear to be the problem. Let me give you the symptom:
async def subscribe_count_seconds(
root: None, info: GraphQLResolveInfo, upTo: int
) -> typing.AsyncIterator[typing.Dict[str, int]]:
for i in range(upTo):
yield {"countSeconds": i}
await asyncio.sleep(1)
async def resolve_count_seconds( # does not get awaited
root: int, info: GraphQLResolveInfo, upTo: int
) -> str:
userid = await authorized_userid(info.context.request)
return f"you are {userid} and its been {root} seconds"
from graphql-core.
Can you post a full test case showing what you do and what you expect to happen?
from graphql-core.
Sure. I created a pretty robust test case that demonstrates how I'd expect it to work. https://gist.github.com/dfee/02264e4e0ea8f6f38ffbeb5e03356473
I have tests for all of it, and it's kinda the basis of some code I'm writing right now.
Anyway, if you look at (and follow) line 371 (test_subscribe_user
), you can see that the subscription returns a MapAsyncIterator
instance as expected, and then as that emits, the result is passed to the resolve function (Line 126 / Line 132). Of course, the async resolver doesn't work (which is why I opened this ticket).
from graphql-core.
Sorry for coming back to you only now, @dfee. I like your large test case - can I add it to the test suite?
I've already added a unit test to test_subscribe
that addresses only your specific issue here, and a small fix that should solve it. Can you confirm that the change above solves your issue?
I also noticed that GraphQL.js has the same issue, so I need to confer with them whether this should be backported.
from graphql-core.
@Cito of course you can include it. Also, very interesting regarding GraphQL.js's compatibility. I'll follow up later on whether the patch works.
from graphql-core.
Related Issues (20)
- subscribe breaking change in graphql version 3.3.0a3 HOT 1
- [Question] How to map operation variables to their uses? HOT 2
- Using Relays in Graphql-core raises a TypeError HOT 4
- `out_name` is not respected for input objects used as default argument value
- Segfault during schema parsing HOT 3
- Segfault during schema parsing
- `graphql.utilities.print_schema` module contents are hidden behind `utilities` package
- `deepcopy` fails if the schema has a directive with an enum argument
- Both `typing.ByteString` and `typing.Text` are deprecated and slated for removal in Python 3.14 HOT 3
- Add the ability to specify `GraphQLResolveInfo.context` type HOT 1
- I use middleware for that right now HOT 1
- construction fails for depth around > 200 / resource exhaustion? HOT 9
- Cancel resolver tasks if execution of an operation is terminated HOT 7
- Support for official @oneof directive HOT 1
- How do you run tests with an IDE? HOT 4
- Pregenerate and Caching GraphqlSchema with Pickle HOT 4
- Validation/coercion of input variables violates the GraphQL spec HOT 1
- Inquiry about the release of a stable version after 3.2.3 HOT 1
- Variable values ordering not kept during execution HOT 2
- How to pass additional information to GraphQLResolveInfo
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 graphql-core.