[PATCH] tests/functional/s390x/test_pxelinux: Fix warnings from pylint

Thomas Huth posted 1 patch 2 weeks, 2 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250912085251.274294-1-thuth@redhat.com
Maintainers: Christian Borntraeger <borntraeger@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Jared Rossi <jrossi@linux.ibm.com>, Zhuoying Cai <zycai@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>
tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
[PATCH] tests/functional/s390x/test_pxelinux: Fix warnings from pylint
Posted by Thomas Huth 2 weeks, 2 days ago
From: Thomas Huth <thuth@redhat.com>

pylint complains about wrong identation in one of the lines and
that the pxelinux_cfg_contents is a constant that should be written
with capital letters. While we're at it, also add the missing doc
strings.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/tests/functional/s390x/test_pxelinux.py b/tests/functional/s390x/test_pxelinux.py
index 4fc33b8c46d..c00cce6a5a4 100755
--- a/tests/functional/s390x/test_pxelinux.py
+++ b/tests/functional/s390x/test_pxelinux.py
@@ -1,10 +1,11 @@
 #!/usr/bin/env python3
 #
 # SPDX-License-Identifier: GPL-2.0-or-later
-#
-# Functional test that checks the pxelinux.cfg network booting of a s390x VM
-# (TFTP booting without config file is already tested by the pxe qtest, so
-#  we don't repeat that here).
+'''
+Functional test that checks the pxelinux.cfg network booting of a s390x VM
+(TFTP booting without config file is already tested by the pxe qtest, so
+we don't repeat that here).
+'''
 
 import os
 import shutil
@@ -12,7 +13,7 @@
 from qemu_test import QemuSystemTest, Asset, wait_for_console_pattern
 
 
-pxelinux_cfg_contents='''# pxelinux.cfg style config file
+PXELINUX_CFG_CONTENTS='''# pxelinux.cfg style config file
 default Debian
 label Nonexisting
 kernel kernel.notavailable
@@ -26,6 +27,10 @@
 '''
 
 class S390PxeLinux(QemuSystemTest):
+    '''
+    Test various ways of booting via a pxelinux.cfg file, for details see:
+    https://wiki.syslinux.org/wiki/index.php?title=PXELINUX#Configuration
+    '''
 
     ASSET_DEBIAN_KERNEL = Asset(
         ('https://snapshot.debian.org/archive/debian/'
@@ -46,6 +51,7 @@ class S390PxeLinux(QemuSystemTest):
         '480859574f3f44caa6cd35c62d70e1ac0609134e22ce2a954bbed9b110c06e0b')
 
     def pxelinux_launch(self, pl_name='default', extra_opts=None):
+        '''Create a pxelinux.cfg file in the right location and launch QEMU'''
         self.require_netdev('user')
         self.set_machine('s390-ccw-virtio')
 
@@ -66,11 +72,11 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
 
         cfg_fname = self.scratch_file('tftp', 'pxelinux.cfg', pl_name)
         with open(cfg_fname, 'w', encoding='utf-8') as f:
-            f.write(pxelinux_cfg_contents)
+            f.write(PXELINUX_CFG_CONTENTS)
 
         virtio_net_dev = 'virtio-net-ccw,netdev=n1,bootindex=1'
         if extra_opts:
-                virtio_net_dev += ',' + extra_opts
+            virtio_net_dev += ',' + extra_opts
 
         self.vm.add_args('-m', '384',
                          '-netdev', f'user,id=n1,tftp={tftpdir}',
@@ -80,6 +86,7 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
 
 
     def test_default(self):
+        '''Check whether the guest uses the "default" file name'''
         self.pxelinux_launch()
         # The kernel prints its arguments to the console, so we can use
         # this to check whether the kernel parameters are correctly handled:
@@ -89,11 +96,13 @@ def test_default(self):
         wait_for_console_pattern(self, 'Run /init as init process')
 
     def test_mac(self):
+        '''Check whether the guest uses file name based on its MAC address'''
         self.pxelinux_launch(pl_name='01-02-ca-fe-ba-be-42',
                              extra_opts='mac=02:ca:fe:ba:be:42,loadparm=3')
         wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
 
     def test_uuid(self):
+        '''Check whether the guest uses file name based on its UUID'''
         # Also add a non-bootable disk to check the fallback to network boot:
         self.vm.add_args('-blockdev', 'null-co,size=65536,node-name=d1',
                          '-device', 'virtio-blk,drive=d1,bootindex=0,loadparm=1',
@@ -102,11 +111,13 @@ def test_uuid(self):
         wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)')
 
     def test_ip(self):
+        '''Check whether the guest uses file name based on its IP address'''
         self.vm.add_args('-M', 'loadparm=3')
         self.pxelinux_launch(pl_name='0A00020F')
         wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
 
     def test_menu(self):
+        '''Check whether the boot menu works for pxelinux.cfg booting'''
         self.vm.add_args('-boot', 'menu=on,splash-time=10')
         self.pxelinux_launch(pl_name='0A00')
         wait_for_console_pattern(self, '[1] Nonexisting')
-- 
2.51.0
Re: [PATCH] tests/functional/s390x/test_pxelinux: Fix warnings from pylint
Posted by Jared Rossi 6 days, 3 hours ago
Reviewed-by: Jared Rossi <jrossi@linux.ibm.com>

On 9/12/25 4:52 AM, Thomas Huth wrote:
> From: Thomas Huth <thuth@redhat.com>
>
> pylint complains about wrong identation in one of the lines and
> that the pxelinux_cfg_contents is a constant that should be written
> with capital letters. While we're at it, also add the missing doc
> strings.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++-------
>   1 file changed, 18 insertions(+), 7 deletions(-)
>
> diff --git a/tests/functional/s390x/test_pxelinux.py b/tests/functional/s390x/test_pxelinux.py
> index 4fc33b8c46d..c00cce6a5a4 100755
> --- a/tests/functional/s390x/test_pxelinux.py
> +++ b/tests/functional/s390x/test_pxelinux.py
> @@ -1,10 +1,11 @@
>   #!/usr/bin/env python3
>   #
>   # SPDX-License-Identifier: GPL-2.0-or-later
> -#
> -# Functional test that checks the pxelinux.cfg network booting of a s390x VM
> -# (TFTP booting without config file is already tested by the pxe qtest, so
> -#  we don't repeat that here).
> +'''
> +Functional test that checks the pxelinux.cfg network booting of a s390x VM
> +(TFTP booting without config file is already tested by the pxe qtest, so
> +we don't repeat that here).
> +'''
>   
>   import os
>   import shutil
> @@ -12,7 +13,7 @@
>   from qemu_test import QemuSystemTest, Asset, wait_for_console_pattern
>   
>   
> -pxelinux_cfg_contents='''# pxelinux.cfg style config file
> +PXELINUX_CFG_CONTENTS='''# pxelinux.cfg style config file
>   default Debian
>   label Nonexisting
>   kernel kernel.notavailable
> @@ -26,6 +27,10 @@
>   '''
>   
>   class S390PxeLinux(QemuSystemTest):
> +    '''
> +    Test various ways of booting via a pxelinux.cfg file, for details see:
> +    https://wiki.syslinux.org/wiki/index.php?title=PXELINUX#Configuration
> +    '''
>   
>       ASSET_DEBIAN_KERNEL = Asset(
>           ('https://snapshot.debian.org/archive/debian/'
> @@ -46,6 +51,7 @@ class S390PxeLinux(QemuSystemTest):
>           '480859574f3f44caa6cd35c62d70e1ac0609134e22ce2a954bbed9b110c06e0b')
>   
>       def pxelinux_launch(self, pl_name='default', extra_opts=None):
> +        '''Create a pxelinux.cfg file in the right location and launch QEMU'''
>           self.require_netdev('user')
>           self.set_machine('s390-ccw-virtio')
>   
> @@ -66,11 +72,11 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
>   
>           cfg_fname = self.scratch_file('tftp', 'pxelinux.cfg', pl_name)
>           with open(cfg_fname, 'w', encoding='utf-8') as f:
> -            f.write(pxelinux_cfg_contents)
> +            f.write(PXELINUX_CFG_CONTENTS)
>   
>           virtio_net_dev = 'virtio-net-ccw,netdev=n1,bootindex=1'
>           if extra_opts:
> -                virtio_net_dev += ',' + extra_opts
> +            virtio_net_dev += ',' + extra_opts
>   
>           self.vm.add_args('-m', '384',
>                            '-netdev', f'user,id=n1,tftp={tftpdir}',
> @@ -80,6 +86,7 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
>   
>   
>       def test_default(self):
> +        '''Check whether the guest uses the "default" file name'''
>           self.pxelinux_launch()
>           # The kernel prints its arguments to the console, so we can use
>           # this to check whether the kernel parameters are correctly handled:
> @@ -89,11 +96,13 @@ def test_default(self):
>           wait_for_console_pattern(self, 'Run /init as init process')
>   
>       def test_mac(self):
> +        '''Check whether the guest uses file name based on its MAC address'''
>           self.pxelinux_launch(pl_name='01-02-ca-fe-ba-be-42',
>                                extra_opts='mac=02:ca:fe:ba:be:42,loadparm=3')
>           wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
>   
>       def test_uuid(self):
> +        '''Check whether the guest uses file name based on its UUID'''
>           # Also add a non-bootable disk to check the fallback to network boot:
>           self.vm.add_args('-blockdev', 'null-co,size=65536,node-name=d1',
>                            '-device', 'virtio-blk,drive=d1,bootindex=0,loadparm=1',
> @@ -102,11 +111,13 @@ def test_uuid(self):
>           wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)')
>   
>       def test_ip(self):
> +        '''Check whether the guest uses file name based on its IP address'''
>           self.vm.add_args('-M', 'loadparm=3')
>           self.pxelinux_launch(pl_name='0A00020F')
>           wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
>   
>       def test_menu(self):
> +        '''Check whether the boot menu works for pxelinux.cfg booting'''
>           self.vm.add_args('-boot', 'menu=on,splash-time=10')
>           self.pxelinux_launch(pl_name='0A00')
>           wait_for_console_pattern(self, '[1] Nonexisting')