comparison tests/common-pattern.py @ 35239:feecfefeba25

tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages Automatic replacement seems better than trying to figure out a check-code rule. I didn't bother looking to see why the error message and file name is reversed in the annotate and histedit tests, based on Windows or not. I originally had this as a list of tuples, conditional on the platform. But there are a couple of 'No such file or directory' messages emitted by Mercurial itself, so unconditional is required for stability. There are also several variants of what I assume is 'connection refused' and 'unknown host' in test-clone.t and test-clonebundles.t for Docker, FreeBSD jails, etc. Yes, these are handled by (re) tags, but maybe it would be better to capture those strings in order to avoid whack-a-mole in future tests. All of this points to using a dictionary containing one or more strings-to-be-replaced values.
author Matt Harbison <matt_harbison@yahoo.com>
date Sat, 02 Dec 2017 19:33:34 -0500
parents 7f0c9e28a816
children b33d4cf38666
comparison
equal deleted inserted replaced
35238:61ff0d7d56fd 35239:feecfefeba25
35 # HTTP log dates 35 # HTTP log dates
36 (br' - - \[\d\d/.../2\d\d\d \d\d:\d\d:\d\d] "GET', 36 (br' - - \[\d\d/.../2\d\d\d \d\d:\d\d:\d\d] "GET',
37 br' - - [$LOGDATE$] "GET' 37 br' - - [$LOGDATE$] "GET'
38 ), 38 ),
39 ] 39 ]
40
41 # Various platform error strings, keyed on a common replacement string
42 _errors = {
43 br'$ENOENT$': (
44 # strerror()
45 br'No such file or directory',
46
47 # FormatMessage(ERROR_FILE_NOT_FOUND)
48 br'The system cannot find the file specified',
49 ),
50 }
51
52 for replace, msgs in _errors.items():
53 substitutions.extend((m, replace) for m in msgs)