<div dir="ltr">Hi Arun,<div><br></div><div>You can call pytest.main() directly instead of the command line, but using the command line in a sub-process is also reasonable IMHO (you might want to send a full log of the run back to the client for example).</div><div><br></div><div>In order to stop test mid-execution you will need to implement your own pytest_runtestloop hook in a conftest.py file that will verify some condition between each run:</div><div><br></div><div><a href="https://github.com/pytest-dev/pytest/blob/08997279f40f9c972c116195cc4d83f33ef17b0e/_pytest/main.py#L155">https://github.com/pytest-dev/pytest/blob/08997279f40f9c972c116195cc4d83f33ef17b0e/_pytest/main.py#L155</a><br></div><div><br></div><div>To keep things simple, upon each request for a new test session, create a temporary directory and put your conftest.py file in there along with the tests:</div><div><br></div><div>/tmp/run0/</div><div>  conftest.py</div><div>  test_1.py</div><div>  test_2.py</div><div>  ...</div><div><br></div><div>When receiving a request to stop the current run, you write a special named file (&quot;.stop&quot; for example), which your hook checks periodically: when it is found it stops the current execution (probably by raising session.Interrupted).</div><div><br></div><div>Hope this helps!</div><div><br></div><div>Cheers,</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jan 3, 2018 at 11:06 AM arun kali raja &lt;<a href="mailto:arunsep886@gmail.com">arunsep886@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I have a requirement where in i want to start pytest from a microservice framework.</div><div><br></div><div>So the user will be sending a restAPI request and based on that i should be able to do the service will start a pytest session.</div><div><br></div><div>i have couple of questions on how to achieve this.</div><div><br></div><div>1. All pytest invocations i see is from cmd line.. can i invoke the pytest run from within another piece of code?</div><div><br></div><div>2. If yes then can i run it as a seperate thread/process all together from the service?</div><div><br></div><div>3. If yes to that also.. suppose i want to handle rest requests like stop testrun in between how do i achieve it.. i dont want to kill the thread.. once the ongoing test is completed then i should stop the execution gracefully. python threading library offers event objects to achieve such things.. i am not sure if i will be able to do such things in a conftest.py..</div><div><br></div><div>Regards</div><div>Arun Kaliraja.B </div><div><div><br></div>-- <br><div class="m_1829661503309873029gmail_signature" data-smartmail="gmail_signature">அன்புடன்,<br>
பா. அருண் காளி ராசா </div>
</div></div>
_______________________________________________<br>
testing-in-python mailing list<br>
<a href="mailto:testing-in-python@lists.idyll.org" target="_blank">testing-in-python@lists.idyll.org</a><br>
<a href="http://lists.idyll.org/listinfo/testing-in-python" rel="noreferrer" target="_blank">http://lists.idyll.org/listinfo/testing-in-python</a><br>
</blockquote></div>