Further improve SVN path normalization and fix test regressions.
Review Request #11042 — Created June 11, 2020 and submitted
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.