Fix setUp/tearDown upcall for Python3

Python3 no longer has `__file__` on classes. `__file__` is a property of
modules now. While we're at it, add a test to ensure that the appropriate
error string winds up in the test output.