Further improve SVN path normalization and fix test regressions.

Review Request #11042 — Created June 11, 2020 and submitted

Review Board

My previous change for SVN path normalization didn't actually work as
well as I had thought. It was tested in the CI environment that
originally unveiled the problems we had with quoting behavior, but those
tests were performed against a svn+ssh:// URL rather than the
file:// URL that the patch was ultimately written against.

It turns out that these two types of URLs have different restrictions. A
file:// URL cannot use non-printable characters (character codes 0
through 31), even if escaped, whereas other URLs can.

This change updates our tests to check against both. We now check
character codes 32+ for file:// URLs and 0+ for others. We also
validate that non-printable character codes aren't provided in a file
path, catching errors before it hits Subversion.

Unit tests pass on Python 2.7 and 3.x (when applied to the release-4.0.x

Unit tests also pass with this patch in the CI environment.

Further improve SVN path normalization and fix test regressions.
  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-3.0.x (3287e03)