That only complicates this problem (keeping run_tests simple)... First you have to load the Factory with all the plugins, then you still have to choose which one to build.  Yes, we could move that logic to another file like "tools.py" but we gain nothing at the expense of another intermediate file.  Yes we could move that logic to a free function in TestHarness.py, but then you are building the object from the Factory when you are in the file that you are building... NO