Dogtail

Latest version: v1.0.5

Safety actively analyzes 688345 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 3

0.5.1

=============

Features:

* An improved build system for RPMs.

* dogtail.procedural's FocusErrors are now more informative.

Bugfixes:

* examples/recorder.py was broken; a bug in dogtail.predicate.makeCamel()
was breaking the predicates' makeScriptVariableName() calls. It's fixed.

0.5.0

=============

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.

* dogtail.errors is a new module for very general exceptions, such as
DependencyNotFoundError, which is raised when the use of a feature that
depends on some missing piece of software is attempted.

* 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 will no longer warn about missing wnck bindings, because they're
not actually used anyway.

* 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 instantiate a dogtail.tc.TCImage object while ImageMagick is
not installed will now give a comprehensible error message, thanks to the
new dogtail.errors.DependencyNotFoundError exception.

* Calling dogtail.utils.screenshot() while ImageMagick is not installed will
also raise a dogtail.errors.DependencyNotFoundError.

* 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

0.4.3

=============

Features:
* Headless support has been added. Use dogtail-run-headless to spawn an X
server, a minimal "Nat/Jeff" GNOME session, and execute a given dogtail
script before exiting. The dogtail-detect-session script detects a running
GNOME session, but KDE support can be dropped in once KDE has accessibility
support.

* dogtail now uses a notification icon while it is running. Its tooltip is
equal to the last message relayed by the debug logger. Most of the code
was taken from jhbuild.

* Sniff, the AT-SPI browser that uses the dogtail libraries, has gained icons
for both applications and specific widgets (based on the role name, taken
from at-poke) to make browsing easier.

* Sniff also gained a proper dogtail icon.

* The procedural API has been given more convenience functions for 'focusing'
different types of widgets.

* The procedural API has also been given an openItem() method, which works
just like click(), for opening icons on nautilus' desktop.

* dogtail can now detect Gentoo and Conary distributions, thanks to Brent
Smith and Tim Gerla, respectively.

* The Node class in dogtail.tree now exports the 'role' attribute in addition
to the 'role name'.

* Wrappers for gcalctool and yelp were added, thanks to Dave Malcolm.

* A wrapper for gedit was added, thanks to Paolo Borelli.

* New examples for Evolution, gcalctool and the GTK file chooser were added,
thanks to Dave Malcolm.

* Dave Malcolm also enhanced the Evolution wrapper, adding support for
creating new meetings.

* A new example that generates fake documentation for a given application has
been added, thanks to Dave Malcolm.

* dogtail.spec has been added, thanks to Jeremy Katz, to improve the quality
of the RPM packages.

Bugfixes:
* several examples had not been updated to reflect API changes before the
last release. This has been corrected.

* The epiphany wrapper now uses the package name 'epiphany-browser' on
Debian-based distributions to detect the package version, thanks to Andrew
Beresford.

Page 3 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.