[virt-tools-list] [PATCH 01/10] uitests: Improve error message caused by another virt-manager being open

Cole Robinson crobinso at redhat.com
Tue Sep 4 16:48:47 UTC 2018


On 09/01/2018 06:17 PM, Povilas Kanapickas wrote:
> If an instance of virt-manager is open when running UI tests, they will
> reuse it and will fail on the first action or check with completely
> non-descriptive message. We can catch errors when initially acquiring
> the window and provide a better error message.
> 

Firstly thanks for the patches. I think you are the only other person 
who has attempted to run the ui tests :)

> Signed-off-by: Povilas Kanapickas <povilas at radix.lt>
> ---
>   tests/uitests/utils.py | 12 ++++++++++--
>   1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/uitests/utils.py b/tests/uitests/utils.py
> index b9c3c62c..c701d330 100644
> --- a/tests/uitests/utils.py
> +++ b/tests/uitests/utils.py
> @@ -22,6 +22,7 @@ class UITestCase(unittest.TestCase):
>       """
>       def setUp(self):
>           self.app = VMMDogtailApp(tests.utils.URIs.test_full)
> +
>       def tearDown(self):
>           self.app.stop()
>

Spurious whitespace change, in general these should be avoided unless 
you are touching that exact area of the code

> @@ -364,8 +365,15 @@ class VMMDogtailApp(object):
>           cmd += extra_opts
>   
>           self._proc = subprocess.Popen(cmd, stdout=stdout, stderr=stderr)
> -        self._root = dogtail.tree.root.application("virt-manager")
> -        self._topwin = self._root.find(None, "(frame|dialog|alert)")
> +
> +        try:
> +            self._root = dogtail.tree.root.application("virt-manager")
> +            self._topwin = self._root.find(None, "(frame|dialog|alert)")
> +        except RuntimeError:
> +            msg = "Could not access the top virt-manager window. Maybe " \
> +                "another instance of virt-manager is active? Please close it " \
> +                "before running tests"
> +            raise RuntimeError(msg)

I hit this issue too, accidentally having the app already running when I 
invoke the tests. Mine usually doesn't fail immediately but instead gets 
some clicking in before failing. Besides being confusing, it's also 
dangerous because depending on the test case it could make changes to 
the host.

So instead of this patch I pushed one of my own which will check dbus to 
see if virt-manager is already running and immediately fail the test. 
It's the only way to be certain. Let me know if that works for you. I'm 
still reviewing the rest of your patches

commit 40461c58efbdd3435102d299da025ecf46089c6a (HEAD -> master)
Author: Cole Robinson <crobinso at redhat.com>
Date:   Tue Sep 4 12:36:50 2018 -0400

     tests: uitests: Fail if virt-manager is already running

Thanks,
Cole




More information about the virt-tools-list mailing list