[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 7/9] iotests: 'new' module replacement in 169
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-block] [PATCH 7/9] iotests: 'new' module replacement in 169 |
Date: |
Mon, 15 Oct 2018 18:13:37 -0300 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Mon, Oct 15, 2018 at 04:14:51PM +0200, Max Reitz wrote:
> iotest 169 uses the 'new' module to add methods to a class. This module
> no longer exists in Python 3. Instead, we can use a lambda. Best of
> all, this works in 2.7 just as well.
>
> Signed-off-by: Max Reitz <address@hidden>
> ---
> tests/qemu-iotests/169 | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tests/qemu-iotests/169 b/tests/qemu-iotests/169
> index f243db9955..e5614b159d 100755
> --- a/tests/qemu-iotests/169
> +++ b/tests/qemu-iotests/169
> @@ -23,7 +23,6 @@ import iotests
> import time
> import itertools
> import operator
> -import new
> from iotests import qemu_img
>
>
> @@ -144,7 +143,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
>
> def inject_test_case(klass, name, method, *args, **kwargs):
> mc = operator.methodcaller(method, *args, **kwargs)
> - setattr(klass, 'test_' + name, new.instancemethod(mc, None, klass))
> + setattr(klass, 'test_' + name, lambda self: mc(self))
The "lambda self: mc(self)" expression looks weird and
unnecessary at first look, but I have just confirmed that this
doesn't work:
setattr(klass, 'test_' + name, mc)
Probably because the methodcaller object won't automatically
become a instance method after the TestCase class is
instantiated.
Reviewed-by: Eduardo Habkost <address@hidden>
>
> for cmb in list(itertools.product((True, False), repeat=4)):
> name = ('_' if cmb[0] else '_not_') + 'persistent_'
> --
> 2.17.1
>
--
Eduardo
- [Qemu-block] [PATCH 4/9] iotests: Use // for Python integer division, (continued)
[Qemu-block] [PATCH 8/9] iotests: Modify imports for Python 3, Max Reitz, 2018/10/15