General comment related to all the tests inserted here. You are encapsulating a bunch of extensive tests within a single test suite, and using exception catching behavior to essentially perform the duties of setup/teardown. Why not wrap each of this in their own suite and take advantage that encapsulation and setup/teardown mechanisms to handle this?