On 2023/05/29 18:58, Daniel Sahlberg wrote:
> For test 16:
> [[[
> W: Unexpected output
> W: EXPECTED STDERR (regexp, match_all=False):
> W: | svn: E200007: Cannot move path
> '.*http://localhost:17838/svn\-test\-work/repositories/copy_tests\-16/A/B
> <http://localhost:17838/svn\-test\-work/repositories/copy_tests\-16/A/B>'
> into its own child
> '.*http://localhost:17838/svn\-test\-work/repositories/copy_tests\-16/A/B/F
> <http://localhost:17838/svn\-test\-work/repositories/copy_tests\-16/A/B/F>'
> W: ACTUAL STDERR:
> W: | svn: E200007: Cannot move path
> 'http:\\localhost:17838\svn-test-work\repositories\copy_tests-16\A\B' into
> its own child
> 'http:\\localhost:17838\svn-test-work\repositories\copy_tests-16\A\B\F'
> ]]]
>
> There was a call to svn_dirent_local_style on the error message, which
> obviously turned \ to / on Windows. I've added a check in r1910112, please
> check if this works for you.
Thanks. Verified that copy_tests.py 16 goes away with r1910112.
> For test 17:
> [[[
> File "C:\usr\apps\python312\Lib\re\_parser.py", line 383, in _escape
> raise source.error("incomplete escape %s" % escape, len(escape))
> re.error: incomplete escape \u at position 34
> ]]]
>
> I suppose this is because the expected_error is constructed like this:
> [[[
> expected_error = "svn: E200007: Cannot move path '%s' into its own " \
> "child '%s'" % (from_path, to_path)
> ]]]
>
> With a from_path C:\usr\subversion\[...], I suppose Python interpret \ as an
> escape character. I'm not proficient enough in Python to have an idea of how
> to escape from_path and to_path in an appropriate way. @Jun, do you have a
> suggestion?
The following patch could fix it and verified (applying `re.escape` to the
paths).
[[[
Index: subversion/tests/cmdline/copy_tests.py
===================================================================
--- subversion/tests/cmdline/copy_tests.py (revision 1910112)
+++ subversion/tests/cmdline/copy_tests.py (working copy)
@@ -1295,7 +1295,7 @@ def wc_move_parent_into_child(sbox):
os.chdir(wc_dir)
expected_error = "svn: E200007: Cannot move path '%s' into its own " \
- "child '%s'" % (from_path, to_path)
+ "child '%s'" % (re.escape(from_path), re.escape(to_path))
svntest.actions.run_and_verify_svn(None, expected_error,
'mv',
'.', 'F/B')
]]]
> (Sidenote: There is an error message in the test log about line 1424. This
> was added way back in r846892 and has essentially been unchanged ever since.
> I believe this is unrelated and I will send this in a separate thread when
> I've had some more time to look at it).
The `SyntaxWarning` from line 1424 is displayed since Python 3.12, even without
-Wdefault option.
$ python3.12 -c '"\$"'
<string>:1: SyntaxWarning: invalid escape sequence '\$'
$ python3.11 -c '"\$"' # no warnings
$ python3.11 -Wdefault -c '"\$"'
<string>:1: DeprecationWarning: invalid escape sequence '\$'
See also:
https://docs.python.org/3.12/whatsnew/3.12.html?highlight=backslash-character#other-language-changes
--
Jun Omae <[email protected]> (大前 潤)