diff mbox series

[v1,11/18] tests/vm: switch from optsparse to argparse

Message ID 20200622143204.12921-12-alex.bennee@linaro.org
State Superseded
Headers show
Series testing/next (vm, gitlab) | expand

Commit Message

Alex Bennée June 22, 2020, 2:31 p.m. UTC
optparse has been deprecated since version 3.2 and argparse is the
blessed replacement. Take the opportunity to enhance our help output
showing defaults when called.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 tests/vm/basevm.py | 84 +++++++++++++++++++++++-----------------------
 1 file changed, 42 insertions(+), 42 deletions(-)

-- 
2.20.1

Comments

Robert Foley June 22, 2020, 5:11 p.m. UTC | #1
Reviewed-by: Robert Foley <robert.foley@linaro.org>


On Mon, 22 Jun 2020 at 10:41, Alex Bennée <alex.bennee@linaro.org> wrote:
>

> optparse has been deprecated since version 3.2 and argparse is the

> blessed replacement. Take the opportunity to enhance our help output

> showing defaults when called.

>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  tests/vm/basevm.py | 84 +++++++++++++++++++++++-----------------------

>  1 file changed, 42 insertions(+), 42 deletions(-)

>

> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py

> index 04d083409a5..93859362606 100644

> --- a/tests/vm/basevm.py

> +++ b/tests/vm/basevm.py

> @@ -23,7 +23,7 @@ from qemu.accel import kvm_available

>  from qemu.machine import QEMUMachine

>  import subprocess

>  import hashlib

> -import optparse

> +import argparse

>  import atexit

>  import tempfile

>  import shutil

> @@ -556,47 +556,47 @@ def parse_args(vmcls):

>          else:

>              return 1

>

> -    parser = optparse.OptionParser(

> -        description="VM test utility.  Exit codes: "

> -                    "0 = success, "

> -                    "1 = command line error, "

> -                    "2 = environment initialization failed, "

> -                    "3 = test command failed")

> -    parser.add_option("--debug", "-D", action="store_true",

> -                      help="enable debug output")

> -    parser.add_option("--image", "-i", default="%s.img" % vmcls.name,

> -                      help="image file name")

> -    parser.add_option("--force", "-f", action="store_true",

> -                      help="force build image even if image exists")

> -    parser.add_option("--jobs", type=int, default=get_default_jobs(),

> -                      help="number of virtual CPUs")

> -    parser.add_option("--verbose", "-V", action="store_true",

> -                      help="Pass V=1 to builds within the guest")

> -    parser.add_option("--build-image", "-b", action="store_true",

> -                      help="build image")

> -    parser.add_option("--build-qemu",

> -                      help="build QEMU from source in guest")

> -    parser.add_option("--build-target",

> -                      help="QEMU build target", default="check")

> -    parser.add_option("--build-path", default=None,

> -                      help="Path of build directory, "\

> -                           "for using build tree QEMU binary. ")

> -    parser.add_option("--interactive", "-I", action="store_true",

> -                      help="Interactively run command")

> -    parser.add_option("--snapshot", "-s", action="store_true",

> -                      help="run tests with a snapshot")

> -    parser.add_option("--genisoimage", default="genisoimage",

> -                      help="iso imaging tool")

> -    parser.add_option("--config", "-c", default=None,

> -                      help="Provide config yaml for configuration. "\

> -                           "See config_example.yaml for example.")

> -    parser.add_option("--efi-aarch64",

> -                      default="/usr/share/qemu-efi-aarch64/QEMU_EFI.fd",

> -                      help="Path to efi image for aarch64 VMs.")

> -    parser.add_option("--log-console", action="store_true",

> -                      help="Log console to file.")

> -    parser.disable_interspersed_args()

> -    return parser.parse_args()

> +    parser = argparse.ArgumentParser(

> +        formatter_class=argparse.ArgumentDefaultsHelpFormatter,

> +        description="Utility for provisioning VMs and running builds",

> +        epilog="""Remaining arguments are passed to the command.

> +        Exit codes: 0 = success, 1 = command line error,

> +        2 = environment initialization failed,

> +        3 = test command failed""")

> +    parser.add_argument("--debug", "-D", action="store_true",

> +                        help="enable debug output")

> +    parser.add_argument("--image", "-i", default="%s.img" % vmcls.name,

> +                        help="image file name")

> +    parser.add_argument("--force", "-f", action="store_true",

> +                        help="force build image even if image exists")

> +    parser.add_argument("--jobs", type=int, default=get_default_jobs(),

> +                        help="number of virtual CPUs")

> +    parser.add_argument("--verbose", "-V", action="store_true",

> +                        help="Pass V=1 to builds within the guest")

> +    parser.add_argument("--build-image", "-b", action="store_true",

> +                        help="build image")

> +    parser.add_argument("--build-qemu",

> +                        help="build QEMU from source in guest")

> +    parser.add_argument("--build-target",

> +                        help="QEMU build target", default="check")

> +    parser.add_argument("--build-path", default=None,

> +                        help="Path of build directory, "\

> +                        "for using build tree QEMU binary. ")

> +    parser.add_argument("--interactive", "-I", action="store_true",

> +                        help="Interactively run command")

> +    parser.add_argument("--snapshot", "-s", action="store_true",

> +                        help="run tests with a snapshot")

> +    parser.add_argument("--genisoimage", default="genisoimage",

> +                        help="iso imaging tool")

> +    parser.add_argument("--config", "-c", default=None,

> +                        help="Provide config yaml for configuration. "\

> +                        "See config_example.yaml for example.")

> +    parser.add_argument("--efi-aarch64",

> +                        default="/usr/share/qemu-efi-aarch64/QEMU_EFI.fd",

> +                        help="Path to efi image for aarch64 VMs.")

> +    parser.add_argument("--log-console", action="store_true",

> +                        help="Log console to file.")

> +    return parser.parse_known_args()

>

>  def main(vmcls, config=None):

>      try:

> --

> 2.20.1

>

>
Daniel P. Berrangé June 22, 2020, 5:20 p.m. UTC | #2
Trivial typo in $SUBJECT  s/optsparse/optparse/

On Mon, Jun 22, 2020 at 03:31:57PM +0100, Alex Bennée wrote:
> optparse has been deprecated since version 3.2 and argparse is the

> blessed replacement. Take the opportunity to enhance our help output

> showing defaults when called.

> 

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  tests/vm/basevm.py | 84 +++++++++++++++++++++++-----------------------

>  1 file changed, 42 insertions(+), 42 deletions(-)


Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>



Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
diff mbox series

Patch

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 04d083409a5..93859362606 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -23,7 +23,7 @@  from qemu.accel import kvm_available
 from qemu.machine import QEMUMachine
 import subprocess
 import hashlib
-import optparse
+import argparse
 import atexit
 import tempfile
 import shutil
@@ -556,47 +556,47 @@  def parse_args(vmcls):
         else:
             return 1
 
-    parser = optparse.OptionParser(
-        description="VM test utility.  Exit codes: "
-                    "0 = success, "
-                    "1 = command line error, "
-                    "2 = environment initialization failed, "
-                    "3 = test command failed")
-    parser.add_option("--debug", "-D", action="store_true",
-                      help="enable debug output")
-    parser.add_option("--image", "-i", default="%s.img" % vmcls.name,
-                      help="image file name")
-    parser.add_option("--force", "-f", action="store_true",
-                      help="force build image even if image exists")
-    parser.add_option("--jobs", type=int, default=get_default_jobs(),
-                      help="number of virtual CPUs")
-    parser.add_option("--verbose", "-V", action="store_true",
-                      help="Pass V=1 to builds within the guest")
-    parser.add_option("--build-image", "-b", action="store_true",
-                      help="build image")
-    parser.add_option("--build-qemu",
-                      help="build QEMU from source in guest")
-    parser.add_option("--build-target",
-                      help="QEMU build target", default="check")
-    parser.add_option("--build-path", default=None,
-                      help="Path of build directory, "\
-                           "for using build tree QEMU binary. ")
-    parser.add_option("--interactive", "-I", action="store_true",
-                      help="Interactively run command")
-    parser.add_option("--snapshot", "-s", action="store_true",
-                      help="run tests with a snapshot")
-    parser.add_option("--genisoimage", default="genisoimage",
-                      help="iso imaging tool")
-    parser.add_option("--config", "-c", default=None,
-                      help="Provide config yaml for configuration. "\
-                           "See config_example.yaml for example.")
-    parser.add_option("--efi-aarch64",
-                      default="/usr/share/qemu-efi-aarch64/QEMU_EFI.fd",
-                      help="Path to efi image for aarch64 VMs.")
-    parser.add_option("--log-console", action="store_true",
-                      help="Log console to file.")
-    parser.disable_interspersed_args()
-    return parser.parse_args()
+    parser = argparse.ArgumentParser(
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+        description="Utility for provisioning VMs and running builds",
+        epilog="""Remaining arguments are passed to the command.
+        Exit codes: 0 = success, 1 = command line error,
+        2 = environment initialization failed,
+        3 = test command failed""")
+    parser.add_argument("--debug", "-D", action="store_true",
+                        help="enable debug output")
+    parser.add_argument("--image", "-i", default="%s.img" % vmcls.name,
+                        help="image file name")
+    parser.add_argument("--force", "-f", action="store_true",
+                        help="force build image even if image exists")
+    parser.add_argument("--jobs", type=int, default=get_default_jobs(),
+                        help="number of virtual CPUs")
+    parser.add_argument("--verbose", "-V", action="store_true",
+                        help="Pass V=1 to builds within the guest")
+    parser.add_argument("--build-image", "-b", action="store_true",
+                        help="build image")
+    parser.add_argument("--build-qemu",
+                        help="build QEMU from source in guest")
+    parser.add_argument("--build-target",
+                        help="QEMU build target", default="check")
+    parser.add_argument("--build-path", default=None,
+                        help="Path of build directory, "\
+                        "for using build tree QEMU binary. ")
+    parser.add_argument("--interactive", "-I", action="store_true",
+                        help="Interactively run command")
+    parser.add_argument("--snapshot", "-s", action="store_true",
+                        help="run tests with a snapshot")
+    parser.add_argument("--genisoimage", default="genisoimage",
+                        help="iso imaging tool")
+    parser.add_argument("--config", "-c", default=None,
+                        help="Provide config yaml for configuration. "\
+                        "See config_example.yaml for example.")
+    parser.add_argument("--efi-aarch64",
+                        default="/usr/share/qemu-efi-aarch64/QEMU_EFI.fd",
+                        help="Path to efi image for aarch64 VMs.")
+    parser.add_argument("--log-console", action="store_true",
+                        help="Log console to file.")
+    return parser.parse_known_args()
 
 def main(vmcls, config=None):
     try: