I think it would be better to use Python's built-in unittest package instead of using our own custom unit testing framework.
It supports things like:
* finding all test*.py files and loading them automatically
* allowing filtering of which tests are run without needing to comment out sections of the source code
* being a well-known unit testing framework
* has a test-running GUI for those who don't like command-line as much
* not needing a Makefile
yes, i know, things have been thrown together somewhat, and
need sorting out.
i have a personal preference for using a Makefile even as
a shortcut / substitute for running a single command,
"nosetests3" or "python3 setup.py test".
it provides a central standardised location, and some uniformity
that makes more sense for more complex tasks (installation etc.)
i also tend to put in things like "make docs":
which has sufficiently complex options that i tend to forget what they are.
likewise with autopep8, there are some options that *need* to be disabled.
etc. etc. otherwise you end up with a total mess of disparate "scripts"
and force the developer to go read some arbitrary text file to find out
what they are.