On Mon, Oct 15, 2018 at 04:14:52PM +0200, Max Reitz wrote: > There are two imports that need to be modified when running the iotests > under Python 3: One is StringIO, which no longer exists; instead, the > StringIO class comes from the io module, so import it from there. The > other is the ConfigParser, which has just been renamed to configparser. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > tests/qemu-iotests/iotests.py | 8 ++++++-- > tests/qemu-iotests/nbd-fault-injector.py | 7 +++++-- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py > index 7ca94e9278..a64ea90fb4 100644 > --- a/tests/qemu-iotests/iotests.py > +++ b/tests/qemu-iotests/iotests.py > @@ -683,13 +683,17 @@ def main(supported_fmts=[], supported_oses=['linux'], > supported_cache_modes=[], > > # We need to filter out the time taken from the output so that > qemu-iotest > # can reliably diff the results against master output. > - import StringIO > + if sys.version_info.major >= 3: > + from io import StringIO > + else: > + from StringIO import StringIO
Considering that io.StringIO exists on Python 2.7, a comment explaining why exactly it doesn't work would be nice. But this shouldn't block this workaround, so: Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> > + > if debug: > output = sys.stdout > verbosity = 2 > sys.argv.remove('-d') > else: > - output = StringIO.StringIO() > + output = StringIO() > > logging.basicConfig(level=(logging.DEBUG if debug else logging.WARN)) > > diff --git a/tests/qemu-iotests/nbd-fault-injector.py > b/tests/qemu-iotests/nbd-fault-injector.py > index d45e2e0a6a..6b2d659dee 100755 > --- a/tests/qemu-iotests/nbd-fault-injector.py > +++ b/tests/qemu-iotests/nbd-fault-injector.py > @@ -48,7 +48,10 @@ import sys > import socket > import struct > import collections > -import ConfigParser > +if sys.version_info.major >= 3: > + import configparser > +else: > + import ConfigParser as configparser > > FAKE_DISK_SIZE = 8 * 1024 * 1024 * 1024 # 8 GB > > @@ -225,7 +228,7 @@ def parse_config(config): > return rules > > def load_rules(filename): > - config = ConfigParser.RawConfigParser() > + config = configparser.RawConfigParser() > with open(filename, 'rt') as f: > config.readfp(f, filename) > return parse_config(config) > -- > 2.17.1 > -- Eduardo