Merge lp:~gz/testtools/unprintable-assertThat-804127 into lp:~testtools-committers/testtools/trunk
|Approved by:||Jonathan Lange on 2011-09-14|
|Merged at revision:||229|
|Diff against target:||
754 lines (+439/-32) (has conflicts)
6 files modified
Text conflict in testtools/tests/test_matchers.py
|To merge this branch:||bzr merge lp:~gz/testtools/unprintable-assertThat-804127|
Description of the Change
Resolve issues related to stringifying in the matcher code, by replacing several custom repr-like schemes using %s on strings (which may upcase the result to unicode or prevent later upcasting, or leak control codes, or...) with a big ugly method that tries to do what the callers wanted.
This deserves a longer description of the reasoning behind the changes, but there's some discussion of the reasoning in the prerequisite branch and I need some feedback before I go crazy\bier.
Some random notes so I don't forget them later:
* Switched from """...""" to '''...''' so if I see output pasted in bug reports I'll know if I broke it.
* Being clever with the escaping of single quotes in multiline strings is probably more trouble than it's worth, just putting a backslash in front of every occurrence would simplify the logic a lot.
* Astral characters break, as per usual. I'm amused to note that upstream just fixed one more issue their end (but without exposing a usable iterator to python level code still), and on Python 3 only of course.
* If the decision is to dump all these attempts at fancy formatting and just live with the normal repr, I would not mind that at all.
- 241. By Martin Packman on 2011-09-13
Extra tests to ensure multiline quoting is correct on Python 3
- 242. By Martin Packman on 2011-09-13
Fix spelling error noted in review by jml
- 243. By Martin Packman on 2011-09-13
Add cautions about unprintable strings to Mismatch documentation
- 244. By Martin Packman on 2011-09-13
Add third state to multiline argument of text_repr and comment the internal logic
- 245. By Martin Packman on 2011-09-13
Test that not passing multiline to text_repr defaults based on input