adding some more unit test coverage
adding a handy function to setup.py so it will parse the requirements automatically from requirements.txt