[U-Boot] [RFC v2 4/10] test/py: Automated conversion to Python 3

Tom Rini
2019-10-19T11:22:57Z

On Sat, Oct 19, 2019 at 08:13:18AM +0200, Heinrich Schuchardt wrote:
> From: Tom Rini <trini@konsulko.com>
>
> Use the 2to3 tool to perform numerous automatic conversions from Python
> 2 syntax to Python 3. Also fix whitespace problems that Python 3
> catches that Python 2 did not.
>
> Signed-off-by: Tom Rini <trini@konsulko.com>
>
> Add missing Python 3 conversion.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Thanks! I'll slightly reword the commit message and pick this part up.

> ---
> test/py/conftest.py | 9 ++--
> test/py/multiplexed_log.py | 4 +-
> test/py/test.py | 4 +-
> test/py/tests/test_fit.py | 12 +++--
> test/py/tests/test_fpga.py | 46 +++++++++----------
> test/py/tests/test_fs/conftest.py | 4 +-
> test/py/tests/test_log.py | 8 ++--
> test/py/tests/test_mmc_wr.py | 74 +++++++++++++++----------------
> 8 files changed, 76 insertions(+), 85 deletions(-)
>
> diff --git a/test/py/conftest.py b/test/py/conftest.py
> index 30c898b40a..7da4b77bce 100644
> --- a/test/py/conftest.py
> +++ b/test/py/conftest.py
> @@ -19,13 +19,10 @@ import os.path
> import pytest
> from _pytest.runner import runtestprotocol
> import re
> -import StringIO
> +import io
> import sys
>
> -try:
> - import configparser
> -except:
> - import ConfigParser as configparser
> +import configparser
>
> # Globals: The HTML log file, and the connection to the U-Boot console.
> log = None
> @@ -169,7 +166,7 @@ def pytest_configure(config):
>
> with open(dot_config, 'rt') as f:
> ini_str = '[root]\n' + f.read()
> - ini_sio = StringIO.StringIO(ini_str)
> + ini_sio = io.StringIO(ini_str.decode())
> parser = configparser.RawConfigParser()
> parser.readfp(ini_sio)
> ubconfig.buildconfig.update(parser.items('root'))
> diff --git a/test/py/multiplexed_log.py b/test/py/multiplexed_log.py
> index 637a3bd257..de0aacc659 100644
> --- a/test/py/multiplexed_log.py
> +++ b/test/py/multiplexed_log.py
> @@ -5,8 +5,8 @@
> # Generate an HTML-formatted log file containing multiple streams of data,
> # each represented in a well-delineated/-structured fashion.
>
> -import cgi
> import datetime
> +import html
> import os.path
> import shutil
> import subprocess
> @@ -334,7 +334,7 @@ $(document).ready(function () {
> data = data.replace(chr(13), '')
> data = ''.join((ord(c) in self._nonprint) and ('%%%02x' % ord(c)) or
> c for c in data)
> - data = cgi.escape(data)
> + data = html.escape(data)
> return data
>
> def _terminate_stream(self):
> diff --git a/test/py/test.py b/test/py/test.py
> index a5140945d4..0ce1838833 100755
> --- a/test/py/test.py
> +++ b/test/py/test.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python2
> +#!/usr/bin/env python3
> # SPDX-License-Identifier: GPL-2.0
>
> # Copyright (c) 2015 Stephen Warren
> @@ -7,8 +7,6 @@
> # Wrapper script to invoke pytest with the directory name that contains the
> # U-Boot tests.
>
> -from __future__ import print_function
> -
> import os
> import os.path
> import sys
> diff --git a/test/py/tests/test_fit.py b/test/py/tests/test_fit.py
> index e3210ed43f..ea9286a553 100755
> --- a/test/py/tests/test_fit.py
> +++ b/test/py/tests/test_fit.py
> @@ -3,8 +3,6 @@
> #
> # Sanity check of the FIT handling in U-Boot
>
> -from __future__ import print_function
> -
> import os
> import pytest
> import struct
> @@ -155,7 +153,7 @@ def test_fit(u_boot_console):
> src = make_fname('u-boot.dts')
> dtb = make_fname('u-boot.dtb')
> with open(src, 'w') as fd:
> - print(base_fdt, file=fd)
> + fd.write(base_fdt)
> util.run_and_log(cons, ['dtc', src, '-O', 'dtb', '-o', dtb])
> return dtb
>
> @@ -169,7 +167,7 @@ def test_fit(u_boot_console):
> """
> its = make_fname('test.its')
> with open(its, 'w') as fd:
> - print(base_its % params, file=fd)
> + fd.write(base_its % params)
> return its
>
> def make_fit(mkimage, params):
> @@ -188,7 +186,7 @@ def test_fit(u_boot_console):
> its = make_its(params)
> util.run_and_log(cons, [mkimage, '-f', its, fit])
> with open(make_fname('u-boot.dts'), 'w') as fd:
> - print(base_fdt, file=fd)
> + fd.write(base_fdt)
> return fit
>
> def make_kernel(filename, text):
> @@ -204,7 +202,7 @@ def test_fit(u_boot_console):
> for i in range(100):
> data += 'this %s %d is unlikely to boot\n' % (text, i)
> with open(fname, 'w') as fd:
> - print(data, file=fd)
> + fd.write(data)
> return fname
>
> def make_ramdisk(filename, text):
> @@ -218,7 +216,7 @@ def test_fit(u_boot_console):
> for i in range(100):
> data += '%s %d was seldom used in the middle ages\n' % (text, i)
> with open(fname, 'w') as fd:
> - print(data, file=fd)
> + fd.write(data)
> return fname
>
> def make_compressed(filename):
> diff --git a/test/py/tests/test_fpga.py b/test/py/tests/test_fpga.py
> index e3bb7b41c7..ca7ef8ea40 100644
> --- a/test/py/tests/test_fpga.py
> +++ b/test/py/tests/test_fpga.py
> @@ -175,29 +175,29 @@ def test_fpga_load_fail(u_boot_console):
> f, dev, addr, bit, bit_size = load_file_from_var(u_boot_console, 'bitstream_load')
>
> for cmd in ['dump', 'load', 'loadb']:
> - # missing dev parameter
> - expected = 'fpga: incorrect parameters passed'
> - output = u_boot_console.run_command('fpga %s %x $filesize' % (cmd, addr))
> - #assert expected in output
> - assert expected_usage in output
> -
> - # more parameters - 0 at the end
> - expected = 'fpga: more parameters passed'
> - output = u_boot_console.run_command('fpga %s %x %x $filesize 0' % (cmd, dev, addr))
> - #assert expected in output
> - assert expected_usage in output
> -
> - # 0 address
> - expected = 'fpga: zero fpga_data address'
> - output = u_boot_console.run_command('fpga %s %x 0 $filesize' % (cmd, dev))
> - #assert expected in output
> - assert expected_usage in output
> -
> - # 0 filesize
> - expected = 'fpga: zero size'
> - output = u_boot_console.run_command('fpga %s %x %x 0' % (cmd, dev, addr))
> - #assert expected in output
> - assert expected_usage in output
> + # missing dev parameter
> + expected = 'fpga: incorrect parameters passed'
> + output = u_boot_console.run_command('fpga %s %x $filesize' % (cmd, addr))
> + #assert expected in output
> + assert expected_usage in output
> +
> + # more parameters - 0 at the end
> + expected = 'fpga: more parameters passed'
> + output = u_boot_console.run_command('fpga %s %x %x $filesize 0' % (cmd, dev, addr))
> + #assert expected in output
> + assert expected_usage in output
> +
> + # 0 address
> + expected = 'fpga: zero fpga_data address'
> + output = u_boot_console.run_command('fpga %s %x 0 $filesize' % (cmd, dev))
> + #assert expected in output
> + assert expected_usage in output
> +
> + # 0 filesize
> + expected = 'fpga: zero size'
> + output = u_boot_console.run_command('fpga %s %x %x 0' % (cmd, dev, addr))
> + #assert expected in output
> + assert expected_usage in output
>
> @pytest.mark.buildconfigspec('cmd_fpga')
> @pytest.mark.buildconfigspec('cmd_echo')
> diff --git a/test/py/tests/test_fs/conftest.py b/test/py/tests/test_fs/conftest.py
> index 9324657d21..354d17672f 100644
> --- a/test/py/tests/test_fs/conftest.py
> +++ b/test/py/tests/test_fs/conftest.py
> @@ -508,8 +508,8 @@ def fs_obj_unlink(request, u_boot_config):
>
> # Test Case 2
> check_call('mkdir %s/dir2' % mount_dir, shell=True)
> - for i in range(0, 20):
> - check_call('mkdir %s/dir2/0123456789abcdef%02x'
> + for i in range(0, 20):
> + check_call('mkdir %s/dir2/0123456789abcdef%02x'
> % (mount_dir, i), shell=True)
>
> # Test Case 4
> diff --git a/test/py/tests/test_log.py b/test/py/tests/test_log.py
> index cb183444c6..75325fad61 100644
> --- a/test/py/tests/test_log.py
> +++ b/test/py/tests/test_log.py
> @@ -27,9 +27,9 @@ def test_log(u_boot_console):
> """
> for i in range(max_level):
> if mask & 1:
> - assert 'log_run() log %d' % i == lines.next()
> + assert 'log_run() log %d' % i == next(lines)
> if mask & 3:
> - assert 'func() _log %d' % i == lines.next()
> + assert 'func() _log %d' % i == next(lines)
>
> def run_test(testnum):
> """Run a particular test number (the 'log test' command)
> @@ -43,7 +43,7 @@ def test_log(u_boot_console):
> output = u_boot_console.run_command('log test %d' % testnum)
> split = output.replace('\r', '').splitlines()
> lines = iter(split)
> - assert 'test %d' % testnum == lines.next()
> + assert 'test %d' % testnum == next(lines)
> return lines
>
> def test0():
> @@ -88,7 +88,7 @@ def test_log(u_boot_console):
> def test10():
> lines = run_test(10)
> for i in range(7):
> - assert 'log_test() level %d' % i == lines.next()
> + assert 'log_test() level %d' % i == next(lines)
>
> # TODO(sjg at chromium.org): Consider structuring this as separate tests
> cons = u_boot_console
> diff --git a/test/py/tests/test_mmc_wr.py b/test/py/tests/test_mmc_wr.py
> index 8b18781eac..2ce79f58e3 100644
> --- a/test/py/tests/test_mmc_wr.py
> +++ b/test/py/tests/test_mmc_wr.py
> @@ -65,41 +65,39 @@ def test_mmc_wr(u_boot_console, env__mmc_wr_config):
>
>
> for i in range(test_iterations):
> - # Generate random data
> - cmd = 'random %s %x' % (src_addr, count_bytes)
> - response = u_boot_console.run_command(cmd)
> - good_response = '%d bytes filled with random data' % (count_bytes)
> - assert good_response in response
> -
> - # Select MMC device
> - cmd = 'mmc dev %d' % devid
> - if is_emmc:
> - cmd += ' %d' % partid
> - response = u_boot_console.run_command(cmd)
> - assert 'no card present' not in response
> - if is_emmc:
> - partid_response = "(part %d)" % partid
> - else:
> - partid_response = ""
> - good_response = 'mmc%d%s is current device' % (devid, partid_response)
> - assert good_response in response
> -
> - # Write data
> - cmd = 'mmc write %s %x %x' % (src_addr, sector, count_sectors)
> - response = u_boot_console.run_command(cmd)
> - good_response = 'MMC write: dev # %d, block # %d, count %d ... %d blocks written: OK' % (
> - devid, sector, count_sectors, count_sectors)
> - assert good_response in response
> -
> - # Read data
> - cmd = 'mmc read %s %x %x' % (dst_addr, sector, count_sectors)
> - response = u_boot_console.run_command(cmd)
> - good_response = 'MMC read: dev # %d, block # %d, count %d ... %d blocks read: OK' % (
> - devid, sector, count_sectors, count_sectors)
> - assert good_response in response
> -
> - # Compare src and dst data
> - cmd = 'cmp.b %s %s %x' % (src_addr, dst_addr, count_bytes)
> - response = u_boot_console.run_command(cmd)
> - good_response = 'Total of %d byte(s) were the same' % (count_bytes)
> - assert good_response in response
> + # Generate random data
> + cmd = 'random %s %x' % (src_addr, count_bytes)
> + response = u_boot_console.run_command(cmd)
> + good_response = '%d bytes filled with random data' % (count_bytes)
> + assert good_response in response
> +
> + # Select MMC device
> + cmd = 'mmc dev %d' % devid
> + if is_emmc:
> + cmd += ' %d' % partid
> + response = u_boot_console.run_command(cmd)
> + assert 'no card present' not in response
> + if is_emmc:
> + partid_response = "(part %d)" % partid
> + else:
> + partid_response = ""
> + good_response = 'mmc%d%s is current device' % (devid, partid_response)
> + assert good_response in response
> +
> + # Write data
> + cmd = 'mmc write %s %x %x' % (src_addr, sector, count_sectors)
> + response = u_boot_console.run_command(cmd)
> + good_response = 'MMC write: dev # %d, block # %d, count %d ... %d blocks written: OK' % (devid, sector, count_sectors, count_sectors)
> + assert good_response in response
> +
> + # Read data
> + cmd = 'mmc read %s %x %x' % (dst_addr, sector, count_sectors)
> + response = u_boot_console.run_command(cmd)
> + good_response = 'MMC read: dev # %d, block # %d, count %d ... %d blocks read: OK' % (devid, sector, count_sectors, count_sectors)
> + assert good_response in response
> +
> + # Compare src and dst data
> + cmd = 'cmp.b %s %s %x' % (src_addr, dst_addr, count_bytes)
> + response = u_boot_console.run_command(cmd)
> + good_response = 'Total of %d byte(s) were the same' % (count_bytes)
> + assert good_response in response
> --
> 2.23.0
>

--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191019/c0123155/attachment.sig>