[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
- Re: [Qemu-devel] [PATCH 7/9] iotests: 'new' module replacement in 169, (continued)
[Qemu-devel] [PATCH 8/9] iotests: Modify imports for Python 3, Max Reitz, 2018/10/15
[Qemu-devel] [PATCH 9/9] iotests: Unify log outputs between Python 2 and 3, Max Reitz, 2018/10/15
Re: [Qemu-devel] [PATCH 0/9] iotests: Make them work for both Python 2 and 3, Philippe Mathieu-Daudé, 2018/10/15