[Pkg-privacy-maintainers] GUI tests for MAT

intrigeri intrigeri at debian.org
Thu Mar 10 10:34:17 UTC 2016


Hi,

Sascha Steinbiss wrote (24 Jan 2016 22:28:32 GMT) :
> the new gui_tests branch in the MAT repo on Alioth now contains an autopkgtest
> I added for the MAT graphical interface. [...]

Great job!

I'm not familiar with the technologies you used there, but after
researching this topic independently, I also picked dogtail for
another project. I'm glad we chose the same :)

> The test suite currently passes in my container (adt-virt-lxc), it couldn’t hurt to
> try on other testbeds too. Anyway, I would be happy to receive some feedback :)

The tests pass for me in adt-virt-qemu.

I'm not merging this branch as-is into master since I have a few
questions, and at least one hard-coded sleep time made me slightly
uncomfortable. So, while reading the code, I took some notes about
bits I was not sure about. Here they are in the form of "XXX" comments
inline:

--- a/debian/tests/check-mat
+++ b/debian/tests/check-mat
@@ -52,6 +52,7 @@ class TestMatGUIFunctional(unittest.TestCase):
         self.add = self.rootapp.child(roleName="tool bar").child(name="Add")
         self.clean = self.rootapp.child(
             roleName="tool bar").child(name="Clean")
+        # XXX: Why do we have to do this by hand?
         self.mat_window_title = 'Metadata Anonymisation Toolkit'
         focus.application("mat-gui")
         focus.frame(self.mat_window_title)
@@ -82,6 +83,8 @@ class TestMatGUIFunctional(unittest.TestCase):
         Leave MAT via menu option.
         """
         self.rootapp.child(name="File", roleName="menu").click()
+        # XXX: do we have a guarantee that this is not racy,
+        # that is, that there is a "Quit" menu item at this point?
         self.rootapp.child(name="Quit", roleName="menu item").click()
 
     def test_start_no_warnings(self):
@@ -117,6 +120,7 @@ class TestMatGUIFunctional(unittest.TestCase):
         window.child("mat").click()
         window.child(self.tmpdir).click()
         window.child("OK").click()
+        # XXX: can't we explicitly wait for the $something we need to wait for?
         time.sleep(5)
 
     def test_gui_cleans_stuff_reduced_pdf_quality(self):

Cheers,
-- 
intrigeri



More information about the Pkg-privacy-maintainers mailing list