Added test to simulate an error I had where an imported reference failed...

... and the python property swallowed the exception raised in my authenticator.
I think you can still keep the existing traceback which will be useful for debugging by using [six.reraise](https://pythonhosted.org/six/#six.reraise). I think it would look like:

```
six.reraise(RuntimeError, "AttributeError: " + str(error), sys.exc_info()[2])
```

And `error.message` is not available in Python 3. You should use the `str(error)` instead.