Re: dogtail-devel dogtail patches
- From: Balazs Scheidler <bazsi balabit hu>
- To: Zack Cerza <zcerza redhat com>
- Cc: dogtail-devel-list <dogtail-devel-list gnome org>, zorp-l balabit hu
- Subject: Re: dogtail-devel dogtail patches
- Date: Mon, 19 Apr 2010 20:26:52 +0200
hi,
On Mon, 2010-04-19 at 12:01 -0400, Zack Cerza wrote:
> On Thu, 2010-04-15 at 11:39 +0200, Balazs Scheidler wrote:
> > Hi,
> >
> > I have sent a similar e-mail here in the past, but got no reaction. I
> > saw some activity recently, thus I repost:
> >
> > BalaBit has been successfully using dogtail for GUI test automation and
> > we made some patches to help us in that regard. Everything is available
> > in our git repo here:
> >
> > http://git.balabit.hu/mde/dogtail.git
> >
> > or
> >
> > git://git.balabit.hu/mde/dogtail.git
> >
> > We'd love to see the patches integrated.
> >
> > Usually the patches are one-fix-a-patch, although integration to our
> > build system is also there, which I doubt would be useful for upstream
> > dogtail. How can we get these patches integrated?
> >
>
> Hi Bazsi,
>
> I do remember seeing a message about your git repo a while ago; I
> apologize for dropping the ball. I just made a fresh clone and I'll
> start looking through the patches. I think there might end up being some
> conflicts, as it doesn't look like your repo has been tracking upstream
> for a long time.
True enough, because we forked when there was no activity. Nevertheless
no problem for not integrating our patches, I completely understand what
it means to be distracted by other things (being the syslog-ng
maintainer :)
Thanks for considering our patches. In order to make it easier for you,
I've now quickly rebased our git tree against the latest upstream, and
dropped all of our internal-build-system-kludge you wouldn't be
interested in anyway.
You can find the latest results in my git repo (it is not MDE's as I
didn't want to muck in his repository):
git://git.balabit.hu/bazsi/dogtail.git
There's a "master" branch that contains the rebased patch set and a
"balabit" branch, that contains the old build related patches that you
probably don't care about.
The patches are not tested in their current form, the team which
originally created the patches are now busy with their currently forked
version, I try to concentrate to get those merged and later we can get
those folks to actually use the newer version.
That said, I'd still think it would be useful to review the patches
themselves, they should be good enough for that, and maybe cherry-pick
the least scary ones.
I've based my patches to this patch: 2e7165f1
In most cases I guess the summary of the patch contains enough
information, where I feel that I'd have something to add, I do it here
in this email.
7bfc7f4aceaf7270158ecdda5e3f421e198556ff [procedural.Select] iterate through the accessible tree upwards to find the accessible that implements selection
371e81ba5782d2d48206c0f48d556585b6a1eb30 [procedural] implement label based focus
I guess this goes somewhat against your current changes, I've added the
label based focusing to the FocusWidget class and it is available to all
kind of focus operations (e.g. focus.text(label="This is the label")
As I saw, you refactored the code to use explicitly instantiated
predicates, however those do not allow me to specify a label.
While rebasing I changed everything back to using the __call__
method which instantiates the predicate class based on the arguments.
df2002d64f7656f860623a7869baaecf18e8ac07 [procedural.Select] return the result of the select/unselect call
9e0d917c96b3f5ecaa18f2704591b8ad9d5e3aa6 [procedural] added treeTable role wrapper for Action/Focus classes
44b07f0647ca6208626bbe8dfc8cd32b36be9d4c Added radiobutton, checkbox, label find methods
b7d25cd36108d0f621f705194d69f242d634d60f tree: Fixed selectedChildren (added missing return)
be3775839492c102653ead58e9f98595fb982e93 tree: fixed _getComboValue (return selected child's name)
c3466ce9d4737301d8a0c704975e5ab58d478bd0 tree: Added keyworded argument handling to dialog search
40eb199bf3d727388623e6ec4f847695910c47c0 Added modal state assertion
3082a55eb8279610e939ab99a60d7a5159f8afe2 Added search function of spin button widget
22728ecc07a37b8631ea43507d1ca69e095c4a1d Added search function of table widget
03329a1422709b030455ee6521a8ff43f9a427ec Added search function of combobox widget
badafcc4445259f2a14604359336bbc7acea2f4f Added search function of tablecell widget
The last couple of patches add various predicate classes. This
is how they actually look like in our code, however I feel
that the copy/paste factor is too large here. It could
propably be done better.
483c9d3fba430403d13bb2329e014ab74ce8ad78 tree: added requireResult parameter passing to child method
1ab5a424904640b89ed8dd049706117d742c5e62 Created treetable functions
2a42acff339a524096f8205da23f5895529c4e15 Added "expandable" state assertion
57d8103b46a57de09896fe0b2734bc4f7fd4060f Added alert and toggle button functions
ad2f1d7d3de198d63788c2c27d950553dda89c94 Added state assertions
This adds properties to all states in pyatspi, however you did some of
these too in the meanwhile. As we followed an older pattern, we do it like:
+ def _isExpanded(self): return self.getState().contains(pyatspi.STATE_EXPANDED)
+ expanded = property(_isExpanded, doc = \
+ "Is the Accessible expanded?")
+
whereas you used the @property decorator. Your solution is nicer, however
I didn't want to convert the code blindly without being able to test. We
added support for _all_ such states though, whereas you only added a few of them.
The property names are the same as far as I've checked.
1a597794201df4b39dd714bb597a775a0045937f Added search functions (scroll bar, tool bar and toggle button)
1f3c025d57f7aed7c5fd7dc0ce835787014c9cde Added search function of filler widget
949cdb70e363ac4abe7a37788c4825f89e47fe61 Passed arguments (e. g. requireResult) to widgets
7a05da82592f24a9ae0da8bf85ec81d9c14efcf3 dogtail.state: new module to keep global variables in one place
This patch makes it possible to drive several accessible applications
at the same time from the same dogtail instance. One only needs to
launch several threads, and each thread can have a separate connection
to the registryd (at-spi-registryd) We're using this along with a patch to
pyatspi to run automated tests in parallel on an application.
c0751a5024dfdaf67231528cbfaa90e638c41f80 Added search function of statusbar widget.
I'd love to see dogtail up-to-speed again, it's been dormant for a
couple of years, but I think it is great code and we've successfully
implemented automatic testing for a quite complex environment.
--
Bazsi
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]