dogtail test suite test harness

Derek Atkins warlord at MIT.EDU
Sat Jul 7 08:28:05 EDT 2007


It's a good thing you said something here.  Your private email landed
in my spam folder so I would never have seen it!

More in-line...

Quoting ahmad sayed <ahmadsayed83 at>:

> Hi Josh,
> Sorry for my long silence i got some issues with my PC lately, I 
> solved it at last,
> currently i have a mix of good news and bad news.
> the good news is:
> 1 - Currently we have wrapper to most of dialogs, our wrapper module 
> reach more than 1000 LOC.
> 2 - I'm able to test the register and i compelete a smplified version 
> of tutorial 1  and 2.

This is very good news...

> the bad news is:
> 1 - In order to be  able to access some components, I use some raw 
> inputs,  according to dogtail  the raw input is to do mouse click 
> using the coordinate,
> Like
> rawClick(wiget.position[0], widget.position[1])

Hmm...  Is the "position" based on pixels or based on other widget packing?

> 2 - I got a problem with expanding the tree in the account pages so i 
> only could create an account like
> Expenses:Taxs
> only parent and child more account like Expense:Taxs:Insurance 
> currently no luck with them

I think that a two-level hierarchy MIGHT be enough to test everything.
Honestly it might be better if we could have a three-level hierarchy,
but I think we can live with two for now.

> also to access the register I use some tricks and work around Like
> ===============================================
>    def set_cell_text(self, text):
>        relative_pos = self.column_val - self.prev_col_val
>        print relative_pos
>        if relative_pos > 0 :
>            for i in range(relative_pos):
>                self.keyCombo("Tab")
>        else:
>            for i in range(abs(relative_pos)):
>                self.keyCombo("<Shift>ISO_Left_Tab")
>        self.typeText(text)
> ================================================
> in this code i save my previos position in if it is after my current 
> position press tab for n times else press shit-tab for n times, 
> something like this.

That's perfectly reasonable.  Note that you should also test the
arrow keys and 'enter' as input methods.

> ofcourse i was expecting more from dogtail unlike other Testing tool, 
> i used or read about but the register needs some work to make it play 
> nice with dogtail(make it accessible),

Is there some other Unix/Gnome testing tool that you'd prefer?
I dont think any of us are whetted to Dogtail specifically.

> BTW: i tried to play with gnucash register code, and atk but i make a 
> very slight progress, like making dogtail read the  register as table 
> but it will require a lot of time the register code is too big.

Honestly I wouldn't waste too much time trying to hack the register.

> 3 - i have a problem with my svn account I contacted Derek to help me 
> solving it.

As I said, thanks for mentioning that here as I didn't see the original
message.  In the future if you don't hear back from me within 24 hours
you should try contacting me on IRC (or better yet, try IRC first!)

> The news ends here, :)
> Back to testplan running:
> you suggested some approach like Junit,  I tried pyunit and it looks 
> nice to me,  do you have any issues regarding using it to organize 
> our test cases.

I dont, but keep in mind that right now we don't have different sets
of test cases, there is only "make check" which runs EVERY test,
and users can manually run specific tests by running "make check TESTS=..."
where "..." is the list of tests to run.

In the end I'd sort of like to see the dogtail tests made a part of "make
check" so that the self-test runs all the GUI tests too.  So much of our
code is GUI code that really "make check" doesn't test enough of our code.
Just my opinion.

> Best regards,
> Ahmed Sayed


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list