[openstack-dev] [nova] contextlib.nested and Python3 failing

Brant Knudson blk at acm.org
Fri Aug 28 14:43:39 UTC 2015


On Wed, Aug 19, 2015 at 6:51 PM, Sylvain Bauza <sbauza at redhat.com> wrote:

> Hi,
>
> 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:
>  - either providing a python3 compatible behaviour by using
> contextlib.ExitStack but that class is not available in Python 2
>  - or provide contextlib2 for python2 (and thus adding it to the
> requirements)
>
> 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.
>
> Of course, a 3rd solution would consist of excluding my updated test from
> the python3 check but I can hear others yelling at that :-)
>
> Ideas appreciated.
>
> -Sylvain
>
> [1]
> https://review.openstack.org/#/c/199205/18/nova/tests/unit/scheduler/test_rpcapi.py,cm
>
>
>
Mock provides a context that patches multiple things so that no nesting is
needed: http://www.voidspace.org.uk/python/mock/patch.html#patch-multiple

oslotest provides fixtures for mock, so you don't need a context:
http://docs.openstack.org/developer/oslotest/api.html#module-oslotest.mockpatch

  __ Brant
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150828/c39b2d1d/attachment.html>


More information about the OpenStack-dev mailing list