Giter VIP home page Giter VIP logo

Comments (5)

dfee avatar dfee commented on September 4, 2024

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.

Cito avatar Cito commented on September 4, 2024

Can you post a full test case showing what you do and what you expect to happen?

from graphql-core.

dfee avatar dfee commented on September 4, 2024

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.

Cito avatar Cito commented on September 4, 2024

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.

dfee avatar dfee commented on September 4, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.