My understanding of Python string method logic was wrong, with no __str__ method the __repr__ is used as a fallback instead. This is a good thing, it means callers can't accidentally hit UnicodeError if they do the wrong thing.
However, it broke a bunch of tests in other commands that print conflicts, which I missed grepping the source. This is because trace.warning and trace.note implicitly str() their first parameter, and it needs unicode() instead. The existing coverage looks pretty good here and as the tests broke with the repr output, I don't think I need to hunt around trying to inject non-ascii text into these various commands that print conflicts.
My understanding of Python string method logic was wrong, with no __str__ method the __repr__ is used as a fallback instead. This is a good thing, it means callers can't accidentally hit UnicodeError if they do the wrong thing.
However, it broke a bunch of tests in other commands that print conflicts, which I missed grepping the source. This is because trace.warning and trace.note implicitly str() their first parameter, and it needs unicode() instead. The existing coverage looks pretty good here and as the tests broke with the repr output, I don't think I need to hunt around trying to inject non-ascii text into these various commands that print conflicts.