Did you look on https://github.com/python/cpython/blob/master/Lib/asyncio/test_utils.py#L265 ?
On Tue, Jul 4, 2017 at 1:04 PM Dima Tisnek <dim...@gmail.com> wrote: > Come to think of it, what sane tests need is a custom event loop or clever > mocks around asyncio.sleep, asyncio.Condition.wait, etc. So that code under > test never sleeps. > > In simple cases actual delay in the event loop would raise an exception. > > A full solution would synchronise asyncio.sleep and friends with > time.time, time.monotonic and friends, so that a if the loop were to delay, > it would advance global/virtual time instead. I think I saw such library > for synchronous code, probably with limitations... > > > In any case you should not have to add delays in your mocks or fixtures to > hack specific order of task execution by the event loop. > > My 2c, > D. > > On Jul 4, 2017 9:34 AM, "Alex Grönholm" <alex.gronh...@nextday.fi> wrote: > >> Yeah, but that doesn't answer my question :) >> >> >> Chris Jerdonek kirjoitti 04.07.2017 klo 10:02: >> >>> On Mon, Jul 3, 2017 at 11:49 PM, Alex Grönholm <alex.gronh...@nextday.fi> >>> wrote: >>> >>>> The real question is: why doesn't vanilla Sphinx have any kind of >>>> support >>>> for async functions which have been part of the language for quite a >>>> while? >>>> >>> It looks like this is the issue (which Brett filed in Nov. 2015): >>> https://github.com/sphinx-doc/sphinx/issues/2105 >>> >>> --Chris >>> >>> >>>> >>>> Nathaniel Smith kirjoitti 01.07.2017 klo 13:35: >>>> >>>>> If we're citing curio and sphinxcontrib-asyncio I guess I'll also >>>>> mention sphinxcontrib-trio [1], which was inspired by both of them >>>>> (and isn't in any way specific to trio). I don't know if the python >>>>> docs can use third-party sphinx extensions, though, and it is a bit >>>>> opinionated (in particular it calls async functions async functions >>>>> instead of coroutines). >>>>> >>>>> For the original text, I'd probably write something like:: >>>>> >>>>> You acquire a lock by calling ``await lock.acquire()``, and >>>>> release >>>>> it with ``lock.release()``. >>>>> >>>>> -n >>>>> >>>>> [1] https://sphinxcontrib-trio.readthedocs.io/en/latest/ >>>>> >>>>> On Fri, Jun 30, 2017 at 8:31 AM, Brett Cannon <br...@python.org> >>>>> wrote: >>>>> >>>>>> Curio uses `.. asyncfunction:: acquire` and it renders as `await >>>>>> acquire()` >>>>>> at least in the function definition. >>>>>> >>>>>> On Fri, 30 Jun 2017 at 03:36 Andrew Svetlov <andrew.svet...@gmail.com >>>>>> > >>>>>> wrote: >>>>>> >>>>>>> I like "two methods, `async acquire()` and `release()`" >>>>>>> >>>>>>> Regarding to extra markups -- I created sphinxcontrib-asyncio [1] >>>>>>> library >>>>>>> for it. Hmm, README is pretty empty but we do use the library for >>>>>>> documenting aio-libs and aiohttp [2] itself >>>>>>> >>>>>>> We use ".. comethod:: connect(request)" for method and "cofunction" >>>>>>> for >>>>>>> top level functions. >>>>>>> >>>>>>> Additional markup for methods that could be used as async context >>>>>>> managers: >>>>>>> >>>>>>> .. comethod:: delete(url, **kwargs) >>>>>>> :async-with: >>>>>>> :coroutine: >>>>>>> >>>>>>> and `:async-for:` for async iterators. >>>>>>> >>>>>>> >>>>>>> 1. https://github.com/aio-libs/sphinxcontrib-asyncio >>>>>>> 2. https://github.com/aio-libs/aiohttp >>>>>>> >>>>>>> On Fri, Jun 30, 2017 at 1:11 PM Dima Tisnek <dim...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi all, >>>>>>>> >>>>>>>> I'm working to improve async docs, and I wonder if/how async methods >>>>>>>> ought to be marked in the documentation, for example >>>>>>>> library/async-sync.rst: >>>>>>>> >>>>>>>> """ ... It [lock] has two basic methods, `acquire()` and >>>>>>>> `release()`. >>>>>>>> ... >>>>>>>> """ >>>>>>>> >>>>>>>> In fact, these methods are not symmetric, the earlier is >>>>>>>> asynchronous >>>>>>>> and the latter synchronous: >>>>>>>> >>>>>>>> Definitions are `async def acquire()` and `def release()`. >>>>>>>> Likewise user is expected to call `await .acquire()` and >>>>>>>> `.release()`. >>>>>>>> >>>>>>>> This is user-facing documentation, IMO it should be clearer. >>>>>>>> Although there are examples for this specific case, I'm concerned >>>>>>>> with >>>>>>>> general documentation best practice. >>>>>>>> >>>>>>>> Should this example read, e.g.: >>>>>>>> * two methods, `async acquire()` and `release()` >>>>>>>> or perhaps >>>>>>>> * two methods, used `await x.acquire()` and `x.release()` >>>>>>>> or something else? >>>>>>>> >>>>>>>> If there's a good example already Python docs or in some 3rd party >>>>>>>> docs, please tell. >>>>>>>> >>>>>>>> Likewise, should there be marks on iterators? async generators? >>>>>>>> things >>>>>>>> that ought to be used as context managers? >>>>>>>> >>>>>>>> Cheers, >>>>>>>> d. >>>>>>>> _______________________________________________ >>>>>>>> Async-sig mailing list >>>>>>>> Async-sig@python.org >>>>>>>> https://mail.python.org/mailman/listinfo/async-sig >>>>>>>> Code of Conduct: https://www.python.org/psf/codeofconduct/ >>>>>>>> >>>>>>> -- >>>>>>> Thanks, >>>>>>> Andrew Svetlov >>>>>>> _______________________________________________ >>>>>>> Async-sig mailing list >>>>>>> Async-sig@python.org >>>>>>> https://mail.python.org/mailman/listinfo/async-sig >>>>>>> Code of Conduct: https://www.python.org/psf/codeofconduct/ >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Async-sig mailing list >>>>>> Async-sig@python.org >>>>>> https://mail.python.org/mailman/listinfo/async-sig >>>>>> Code of Conduct: https://www.python.org/psf/codeofconduct/ >>>>>> >>>>>> >>>>> _______________________________________________ >>>> Async-sig mailing list >>>> Async-sig@python.org >>>> https://mail.python.org/mailman/listinfo/async-sig >>>> Code of Conduct: https://www.python.org/psf/codeofconduct/ >>>> >>> >> _______________________________________________ >> Async-sig mailing list >> Async-sig@python.org >> https://mail.python.org/mailman/listinfo/async-sig >> Code of Conduct: https://www.python.org/psf/codeofconduct/ >> > _______________________________________________ > Async-sig mailing list > Async-sig@python.org > https://mail.python.org/mailman/listinfo/async-sig > Code of Conduct: https://www.python.org/psf/codeofconduct/ > -- Thanks, Andrew Svetlov
_______________________________________________ Async-sig mailing list Async-sig@python.org https://mail.python.org/mailman/listinfo/async-sig Code of Conduct: https://www.python.org/psf/codeofconduct/