sugarbot's aim is to provide testing and automation facilities for the OLPC Project's Sugar GUI. The project must first identify and evaluate possible implementation options, and then implement the best choice. Although it has a Sugar focus, sugarbot should be easily extensible to other Python-based GUI's.

Friday, July 11, 2008

Mid-Summer Screencast

The screencast is up here [mp4] and here [avi].
The SVN repo has been updated to use the same code as the screencast (r77).

Accomplishments thus far:
  • Masquerading as any Activity while retaining all functionality
  • Hooks into PyGTK library to intercept GDK Events to catalog widgets
  • Intelligent identification of widgets based on widget class to give each widget a unique identifier
  • Manipulation of many types of widgets using generic commands like 'click' and 'type'
  • Multithreaded execution routine prevents hang-ups (prior versions would stall once the calls to the GTK handler stopped due to inactivity)
  • Custom scripting language with support for advanced string manipulation [will soon be replaced by native Python code]
  • XML-RPC client/server interface allows the scripts to be stored on a central machine, while sugarbot may be run on any number of slaves.
  • Per-command status reporting and graceful error handling
  • Does not rely on any libraries or modules outside those already provided by Sugar and Python
  • Automated testing provided via buildbot and python-nose.

Have fun!
Questions, comments, and rants are welcome and appreciated.

1 comment:

Steven Kryskalla said...

Awesome work! Nice presentation, Sugarbot looks very impressive.

How are you running Sugar? Inside a VM? Or running natively? Can Sugar work with either method?