Moved dependency list (required for tests) out of the setup script into a separate file, and configured tox to incorporate it.
Added test environment for Python 3.2.
Fixed duplicate space in log output.
Use shorter name.
Refactored handler.
Only state that the bot has joined a channel if it really did; not if other users have joined.
Let the super class handle CTCP requests; only provide a custom version string.
Added/changed some docstrings.
Fixed STDOUT announcer not working because the processer has been waiting for the IRC channels join signal (which is never sent in non-IRC mode).
Send a separate signal for every IRC channel joined. Don't start forwarding syslog messages until the first channel is joined. Previously it would already start as soon as the commands to join channels were sent to the IRC server without the IRC bot actually having joined.
Removed executable flag from requirements file.
Don't create unnecessary intermediate mapping from port numbers to announce functions.
Don't pass the routes dict around, but extract and transform data as necessary before passing that to the various callables.
Add routes to the processor one-by-one, after creating it.
Grouped signals.
Renamed test classes.
Simplified syslog message class.
Simplified section descriptions.
Add route to processor on channel join.
Removed now unnecessary wait loop because nothing will be announced until the first route is registered, which in turn is done once the first channel is joined.