qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 8/9] iotests: Modify imports for Python 3


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH 8/9] iotests: Modify imports for Python 3
Date: Mon, 15 Oct 2018 21:12:15 -0300
User-agent: Mutt/1.9.2 (2017-12-15)

On Mon, Oct 15, 2018 at 08:05:02PM -0400, Cleber Rosa wrote:
> 
> 
> On 10/15/18 5:17 PM, Eduardo Habkost wrote:
> > 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 <address@hidden>
> >> ---
> >>  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.
> > 
> 
> Another possibility, that I find self explanatory:
> 
> import io
> 
> if sys.version_info.major >= 3:
>    output = io.StringIO()
> else:
>    output = io.BytesIO()

Looks nice and clean.

But I'm not sure all output sent to `output` when running with
Python 2 will be byte strings.  What if `unittest.TextTestRunner`
tries to write unicode strings to `output`?

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]