
Hamza Sheikh <fehrist@codeghar.com> writes:
From what I understand -- forgive my beginner-level grasp of the subject matter -- once the reactor starts no more listenTCP() or connectTCP() (for example) can be added.
You can call these methods after the reactor starts with no problems.
And until the reactor stops code execution does not progress beyond ``reactor.run()``.
Yes, this is true.
* How can I use Twisted that fits the way my tests are written? * If I have to rewrite my tests to fit the Twisted model, do I start the reactor every time for each test and stop it at the end?
No, I would use a "session"-scoped "reactor" fixture that starts the reactor once, and stops it once. This is also what the function twisted.internet.task.react does for you (but probably not appropriate for pytest tests).
* Are there any known issues with start/stop reactor multiple times in a single, long-running process?
You cannot re-start the reactor.
* Are there any good examples of using Twisted in integration tests that I have failed to find?
I have a blog post on this, outlining some integration tests that I wrote for Tahoe-LAFS (which uses Twisted) and which also starts a 25-node Tor test network. https://meejah.ca/blog/pytest-integration-testing You probably also want the pytest-twisted extension for pytest. I'm often around in #twisted or #tahoe-lafs on Freenode IRC if you'd like to discuss. -- meejah