I don't think this is going to do what you want in all cases. In Python 2, if message is unicode, format will try to convert to ASCII, and if it contains any incompatible code points, format will raise UnicodeEncodeError. On the other hand, if message is a UTF-8 str, you'll get past that, but six.text_type will raise an exception if message has any non-ASCII sequences.

I just realized we're missing a test for this - need to add that.