Certainly just mangling the string in the exception to be ascii-only on Python 2 works as well. The problem is that loses information that testtools could use.
Not having a clear interface means other matchers are likely to fall into this kind of trap with unicode, for instance the StartsWith matcher, and after <lp:~jml/testtools/nicer-regex-fail> MatchesRegex too.
Certainly just mangling the string in the exception to be ascii-only on Python 2 works as well. The problem is that loses information that testtools could use.
Not having a clear interface means other matchers are likely to fall into this kind of trap with unicode, for instance the StartsWith matcher, and after <lp:~jml/testtools/nicer-regex-fail> MatchesRegex too.