On 10/15/18 10:14 AM, 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 <mre...@redhat.com>
> ---
> 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))
>
> for cmb in list(itertools.product((True, False), repeat=4)):
> name = ('_' if cmb[0] else '_not_') + 'persistent_'
>
This can be simplified with:
diff --git a/tests/qemu-iotests/169 b/tests/qemu-iotests/169
index e5614b159d..2199f14ae7 100755
--- a/tests/qemu-iotests/169
+++ b/tests/qemu-iotests/169
@@ -22,7 +22,6 @@ import os
import iotests
import time
import itertools
-import operator
from iotests import qemu_img
@@ -141,18 +140,15 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase):
self.check_bitmap(self.vm_b, sha256 if persistent else False)
-def inject_test_case(klass, name, method, *args, **kwargs):
- mc = operator.methodcaller(method, *args, **kwargs)
- setattr(klass, 'test_' + name, lambda self: mc(self))
-
for cmb in list(itertools.product((True, False), repeat=4)):
name = ('_' if cmb[0] else '_not_') + 'persistent_'
name += ('_' if cmb[1] else '_not_') + 'migbitmap_'
name += '_online' if cmb[2] else '_offline'
name += '_shared' if cmb[3] else '_nonshared'
- inject_test_case(TestDirtyBitmapMigration, name, 'do_test_migration',
- *list(cmb))
+ setattr(TestDirtyBitmapMigration, 'test_' + name,
+ lambda self: TestDirtyBitmapMigration.do_test_migration(
+ self, *list(cmb)))
if __name__ == '__main__':