Correct Lithuanian short date format.
Fixed typo in WidthRatioNode's error.
Fixed #19497 -- Refactored testing docs.

Thanks Tim Graham for the review and suggestions.
Fixed #19487 -- Used str in the test client's WSGI environ.

This regression was introduced by the unicode_literals patch. The WSGI
spec mandates that environ contains native strings.
Fixed #19468 -- Decoded request.path correctly on Python 3.

Thanks aliva for the report and claudep for the feedback.
Fixed #19509 -- Fixed crypt/bcrypt non-ascii password encoding

Also systematically added non-ascii passwords in hashers test suite.
Thanks Vaal for the report.
Better name for a new testing documentation link.
Fixed #15516 -- Updated the ticket life cycle diagram.
Add assertInHTML method to TestCase
Add assertJSONEqual method to TestCase
Use new TestCase methods for equality comparisons
Use HTML parser to compare html snippets
Don't rely on dictionary ordering in tests
Sort HTML attributes on generated forms
Made admin generated changelist URLs independent of dict ordering
Fixed a dependence on set-ordering in tests
Fixed HTML comparisons of class="foo bar" and class="bar foo" in tests

Refs #17758
Fixed a randomly failing test under Python 3.

Refs #17758.
Fixed #19204 -- Replaced python2-style exception syntax.

Thanks to garrison for the report and patch.
Fixed #19505 -- A more flexible implementation for customizable admin redirect urls.

Work by Julien Phalip.

Refs #8001, #18310, #19505. See also 0b908b92a2ca4fb74a103e96bb75c53c05d0a428.