dogtail 0.5.0
- From: Zack Cerza <zcerza redhat com>
- To: gnome-announce-list gnome org, dogtail-list gnome org, dogtail-devel-list gnome org
- Cc:
- Subject: dogtail 0.5.0
- Date: Tue, 07 Feb 2006 14:02:57 -0500
A new Dogtail release, 0.5.0, is ready for your automation and testing
pleasure. This release includes many new features and bugfixes. Here's
the full list:
Features:
* Automatic runtime translation into the current locale using the
application under test's own translations. See
examples/gedit-test-utf8-procedural-api.py for an example.
* dogtail.distro.packageDb gained new methods: getFiles(),
getMoFiles(), and getDependencies().
* dogtail.distro.packageDb now has support for JHBuild environments.
* dogtail.distro has gained exceptions:
- PackageNotFoundError: raised when the specified package is not
found.
- DistributionNotSupportedError: raised when support for the current
distribution is not currently implemented in dogtail.distro. This
does not mean that dogtail will not work at all; only that
distribution-specific functionality, like automatic runtime
translation, will not.
* sniff will now cause the selected node to blink onscreen.
* dogtail.tree has a new Node subclass, Link. Link nodes have a
roleName of 'hyper link' and an action called 'jump'. Their main
purpose is to allow us to follow links in web pages.
* dogtail.tree.Node has new properties and methods:
- position: the onscreen position of the node, if it wraps an
atspi.Component.
- size: the onscreen size of the node, if it wraps an
atspi.Component.
- blink(): causes the node to blink onscreen.
- grabFocus(): causes the node to grab the keyboard focus, if it
wraps an atspi.Component.
- rawClick(): synthesizes a raw mouse click on the node, if it wraps
an atspi.Component.
- rawType(): synthesizes raw keyboard events to type text into the
node, if it wraps an atspi.Component.
* dogtail.procedural has new helper methods:
- menu(): executes the 'menu' action on the focused widget.
- focus.frame(): a shortcut to focus.widget(roleName='frame' ...)
- focus.window(): a shortcut to focus.widget(roleName='window' ...)
* dogtail.procedural.click() can now synthesize raw mouse events to
perform "raw" clicks.
* dogtail.rawinput has gained new methods:
- pressKey(): synthesizes a raw keyboard event, pressing the key
whose name is specified.
- typeText(): types a specified string, one key at a time, using raw
keyboard events.
* dogtail.config was rewritten.
* dogtail.config.config has new parameters:
- ensureSensitivity: controls whether a NotSensitiveError is raised
when an attempt is made to execute an action belonging to a Node
instance that is not sensitive, or if a warning is simply printed
instead (the default).
- debugTranslation: Controls whether details of the autotranslation
process will be outputted to the debug logger.
* dogtail.config now creates its scratchDir, dataDir, and logDir as
soon as the values are set.
* dogtail.utils.screenshot(), by default, whether using a custom
filename or not, now appends a timestamp to the filename. That may be
disabled by passing 'timeStamp = False' to the method. For this
reason, it also prints the full path to the screenshot.
* dogtail.logging.TimeStamp.fileStamp()'s format has changed, to
filename_YYYYMMDD-hhmmss or just filename_YYYYMMDD, controlled by the
new optional argument 'addTime'.
* dogtail prints the full path to any logfiles it creates.
* dogtail-run-headless will now turn accessibility on before executing
the script under test, and also restore the old value after the the
script has finished executing (GNOME bug #320548).
Bugfixes:
* sniff will correctly show the text of a non-editable text node again
(GNOME bug #321564).
* dogtail.tree.screenshot() was mostly rewritten, and no longer breaks
when given a custom filename.
* dogtail.procedural no longer causes PyDoc to fail miserably (or at
all).
* dogtail.procedural.focus.dialog() no longer searches recursively
(GNOME bug #321624).
* dogtail.procedural.focus.widget() and its shortcut functions now
properly raise a FocusError if their search fails.
* dogtail.tc.TCString.compare() will now fail properly again, thanks to
Muktha Narayan (GNOME bug #321151).
* dogtail.tc.TCImage.compare() now works with the newest version of
ImageMagick. That version had changed its behavior, breaking the
function. (GNOME bug #321431).
* Attempting to execute an action belonging to a Node instance that
isn't sensitive no longer fails by default, but prints a warning.
This behavior is controlled by the ensureSensitivity configuration
parameter.
* dogtail-run-headless now correctly returns the exit code of the
script being executed (GNOME bug #320535).
* dogtail.distro's APT support implementation now only calls
apt_pkg.GetCache() once, improving performance significantly when
multiple calls to packageDb.get{Version,Dependencies}() are needed.
* Building RPM packages from the supplied dogtail.spec works again on
distros that are as old or older than RHEL4.
* Building RPM packages with 'make rpm' works again without root
privileges.
API breaks:
* Action execution via dogtail.tree.Node instances was forced to change
interfaces from the "node.open()" model to a "node.doAction('open')"
model. To retain backward compatibility with the application
wrappers, the "click" action is still available as "node.click()".
The dogtail.procedural interface was able to remain unchanged.
* dogtail.config was rewritten to be more robust, and its interface was
changed slightly. To port, First, remove any instantiations of the
old Config class, and then make the following parameter replacements:
- Config => config
- logdir => logDir
- scratch => scratchDir
- data => dataDir
Any tests that you write may live in CVS with the appropriate module, or
in the dogtail-tests module: http://cvs.gnome.org/viewcvs/dogtail-tests/
but you are of course free to just shove them under your bed.
dogtail 0.5.0 requires pyspi 0.5.3. Get both here:
http://people.redhat.com/zcerza/dogtail/releases/
Enjoy!
[Date Prev][Date Next] [Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]