On Fri, Oct 19, 2018 at 09:15:22PM +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 (and > use the BytesIO class for Python 2). 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 | 13 +++++++++---- > tests/qemu-iotests/nbd-fault-injector.py | 7 +++++-- > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py > index 7ca94e9278..ed91095505 100644 > --- a/tests/qemu-iotests/iotests.py > +++ b/tests/qemu-iotests/iotests.py > @@ -29,6 +29,7 @@ import json > import signal > import logging > import atexit > +import io > > sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', > 'scripts')) > import qtest > @@ -681,15 +682,19 @@ def main(supported_fmts=[], supported_oses=['linux'], > supported_cache_modes=[], > verify_platform(supported_oses) > verify_cache_mode(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 debug: > output = sys.stdout > verbosity = 2 > sys.argv.remove('-d') > else: > - output = StringIO.StringIO() > + # We need to filter out the time taken from the output so that > + # qemu-iotest can reliably diff the results against master output. > + if sys.version_info.major >= 3: > + output = io.StringIO() > + else: > + # StringIO() is for unicode strings, which is not what
Nit: I would change the comment to say "io.StringIO" instead of "StringIO", to avoid confusion with StringIO.StringIO. Not a big deal, so: Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> > + # 2.x's test runner emits. > + output = io.BytesIO() > > 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