<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 19, 2015 at 6:51 PM, Sylvain Bauza <span dir="ltr"><<a href="mailto:sbauza@redhat.com" target="_blank">sbauza@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I was writing some tests so I added a contextlib.nested to a checked TestCase [1]. Unfortunately, contextlib.nested is no longer available in Python3 and there is no clear solution on how to provide a compatible import for both python2 and python3:<br>
- either providing a python3 compatible behaviour by using contextlib.ExitStack but that class is not available in Python 2<br>
- or provide contextlib2 for python2 (and thus adding it to the requirements)<br>
<br>
That sounds really disruptive and blocking as we are close to the FeatureFreeze. Many other users of contextlib.nested are not impacted by the job because it excludes all of them but since the test I'm changing is part of the existing validated tests, that leaves Jenkins -1'ing my change.<br>
<br>
Of course, a 3rd solution would consist of excluding my updated test from the python3 check but I can hear others yelling at that :-)<br>
<br>
Ideas appreciated.<br>
<br>
-Sylvain<br>
<br>
[1] <a href="https://review.openstack.org/#/c/199205/18/nova/tests/unit/scheduler/test_rpcapi.py,cm" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/199205/18/nova/tests/unit/scheduler/test_rpcapi.py,cm</a><br>
<br>
<br></blockquote><div><br></div><div>Mock provides a context that patches multiple things so that no nesting is needed: <a href="http://www.voidspace.org.uk/python/mock/patch.html#patch-multiple">http://www.voidspace.org.uk/python/mock/patch.html#patch-multiple</a><br><br></div><div>oslotest provides fixtures for mock, so you don't need a context: <a href="http://docs.openstack.org/developer/oslotest/api.html#module-oslotest.mockpatch">http://docs.openstack.org/developer/oslotest/api.html#module-oslotest.mockpatch</a><br></div><div><br></div><div> __ Brant<br><br></div></div></div></div>