On Mon, Feb 21, 2022, at 03:10, Chris Withers wrote:
Hi Kyle,
On 20/02/2022 22:43, Kyle Altendorf wrote:
On Sun, Feb 20, 2022, at 13:44, Chris Withers wrote:
At this point, it feels like any available energy could be more usefully employed in getting a pytest plugin that really supported the Twisted reactor in place. Re-inventing wheels like coverage just doesn't seem sensible at this point.
I don't expect to invest a lot of time in pytes-twisted, but I am curious what you mean by supporting the Twisted reactor in place. A new reactor for each test?
I last looked in depth at pytest-twisted in 2018, but after a quick scan, it doesn't appear that much has changed.
Mostly what has changed since 2018, if I remember correctly, would be the addition of async/await support for tests and fixtures. Oh, and support for non-default reactors, in particular the Qt-related ones.
The concerns I had were mainly that trial does a *lot* to manage test isolation, reactor cleanup, etc (and it still isn't enough!) and I don't see any of that in pytest-twisted.
There has been chatter about this, but no action.
What I *do* see are references to greenlets, a thing that looks like inlineCallbacks but isn't and a general worry that pytest twisted adds more complexity for less robustness. Given how incredibly complicated Twisted already is (oh for a more simplified inlineCallbacks!), these are not things I'm looking for when it comes to testing.
greenlets are the basic tool used to cooperate with pytest while having a long-lived reactor. This allows long-lived fixtures, when you want them. I don't recall particularly having a lot of issues with the greenlets from a user perspective. But sure, it is indeed 'fun' handling another layer of concurrency in the implementation.
Now, I freely admit I may be way off base with these comments, so take them with a bucket of salt...
Pretty sure you aren't. :] Cheers, -kyle