Working on class CrawlPlugin
test_crawl_start_* and friends are failing
Getting the plugin dir location sorted for the tests
Override getboolean, add test for the override method, log results
Add test stubs, trust CrawlConfig's overridden getboolean so we don't
have to try/expect in init_cfg_data().
crawl.py: Remove obsolete code, add comments
daemon.py: tweak method dividers
testhelp.py: Fully qualified test names
toolframe.py: Add log file to ez_launch
 - Elevate ConfigParser.NoOptionError up into CrawlConfig
 - Get test_init_fire_* tests working
 - Make fire default to True in CrawlPlugin
Adding tests to CrawlPlugin
Working toward making the crawler and drill instructor more functional
Working on drill-instructor, added class Checkable to implement a
persistent queue of things to check.
Add Checkable.__eq__(), lots of new tests for persist() (most still
throwing UnderConstructionError, test helper routines
Reworked persist()
Checkable.py - Added some tests, got them working
crawl.py - Fixed a failing test case
drill-instructor.py - Improved error handling
Added tearDown() function to ensure that crawler is shut down after
each test.
Subclassed unittest.TestCase to add expected() method, which shows the
difference between the expected and actual value.
Lots of tweaks and additions to test cases.
Delete and re-import plugin if plugin dir changes.
Tests for time_to_fire().
Organize the tests a little better, so they call all be run with one
command ("all_tests"). Added tests for util.py. Make sure everyone
uses the same python.
Making testhelp test outcome clearer.
- Use toolframe in Checkable to log test results
- Add dataroot to the checkable database and use it when calling
  ex_nihilo from the drill-instructor
- Use os.system rather than pexpect.run in all_tests so the progress
  is visible