<div dir="ltr">All,<br><br>Thanks for the comments, particuarly the reminder on the difficult of combining unit tests in Python with the QTest interface. What works for me when testing: make the QApplication instance a module-level variable. Yes, this isn't the right way to do things for traditional application...but it works fine when testing for me. I'd be interested to hear others' comments.<br><div><br></div><div>Specifically, referring to the test code:</div><div><a href="http://johnnado.com/pyqt-qtest-example/">http://johnnado.com/pyqt-qtest-example/</a> for docs,<br></div><div><a href="https://bitbucket.org/jmcgeheeiv/pyqttestexample">https://bitbucket.org/jmcgeheeiv/pyqttestexample</a> for the code<br></div><div><br></div><div>Change MargaritaMixerTest.py starting at line 39 to be...</div><div><br></div><div># This is new<br></div><div><div>app = QApplication(sys.argv)  </div><div><br></div><div>class MargaritaMixerTest(unittest.TestCase):</div><div>    '''Test the margarita mixer GUI'''</div><div>    def setUp(self):</div><div>        '''Create the GUI'''</div><div>        # Commented out: self.app = QApplication(sys.argv)</div><div>        self.form = MargaritaMixer.MargaritaMixer()</div><div><br></div><div>..the rest of the code is the same...</div><div><br></div><div>Bryan</div><div><br></div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 30, 2014 at 2:03 AM, Antonio Valentino <span dir="ltr"><<a href="mailto:antonio.valentino@tiscali.it" target="_blank">antonio.valentino@tiscali.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi David, hi Andre,<br>
<br>
Il 29/12/2014 23:51, Andre Roberge ha scritto:<br>
<span class="">> On Mon, Dec 29, 2014 at 6:41 PM, David Cortesi <<a href="mailto:davecortesi@gmail.com">davecortesi@gmail.com</a>><br>
> wrote:<br>
><br>
>><br>
>> From: Antonio Valentino <<a href="mailto:antonio.valentino@tiscali.it">antonio.valentino@tiscali.it</a>><br>
>>> I'm very interested in this topic so if anyone has some useful pointers<br>
>>> to material about unittesting of PyQt based GUI applications please share.<br>
>>><br>
>><br>
>> I have found Sikuli (<a href="http://www.sikuli.org/" target="_blank">http://www.sikuli.org/</a>) useful for this. You can set<br>
>> up quite complex scenarios and validate the GUI response.<br>
>><br>
>> A Sikuli script is a Python script. Basically you start one off with<br>
>><br>
>> subprocess.Popen(['/usr/local/bin/python', 'path-to-test-driver.py'])<br>
>><br>
>> and then continue with Sikuli statements to click, or type, or look for<br>
>> specific visual items in the UI presented by the test-driver.py execution.<br>
>> There is an interactive tool for dragging to select particular bits of UI,<br>
>> a menu or a dialog or whatever, and say "expect that here".<br>
>><br>
><br>
> In my original post on this topic, I mentioned that I was using pyautogui<br>
> which works (I thought) similarly to Sikuli.  The problem with this<br>
> approach is that one pretty much has to leave the monitor alone while the<br>
> tests are run and it might be difficult to set thing up with automated<br>
> testing providers (like <a href="https://travis-ci.org/" target="_blank">https://travis-ci.org/</a>).   Since PyQt includes<br>
> QTest, I was thinking that there had to be many people using it and that<br>
> there should be some relatively easy/standard ways of doing unittesting<br>
> with QTest.<br>
<br>
</span>I totally agree<br>
<span class=""><br>
> However... you do write that you have found Sikuli useful. Is there some<br>
> relatively straightforward way to run tests quickly with Sikuli so that it<br>
> does not interrupt the workflow significantly (which I found pyautogui was<br>
> doing.)<br>
><br>
> André<br>
><br>
<br>
</span>Thanks, I will give a look to both Sikuli and pyautogui.<br>
<br>
best ragards<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Antonio Valentino<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><br>
<a href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt" target="_blank">http://www.riverbankcomputing.com/mailman/listinfo/pyqt</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Bryan A. Jones, Ph.D.<br>Associate Professor<br>Department of Electrical and Computer Engineering<br>231 Simrall / PO Box 9571<br>Mississippi State University<br>Mississippi state, MS 39762<br><a href="http://www.ece.msstate.edu/~bjones" target="_blank">http://www.ece.msstate.edu/~bjones</a><br>bjones AT ece DOT msstate DOT edu<br>voice 662-325-3149<br>fax 662-325-2298<br><br>Our Master, Jesus Christ, is on his way. He'll show up right on<br>time, his arrival guaranteed by the Blessed and Undisputed Ruler,<br>High King, High God.<br>- 1 Tim. 6:14b-15 (The Message)<br></div>
</div>