Mercurial > p > roundup > code
view website/issues/extensions/local_replace.py @ 6503:4c7381f5051b
Enable bionic build replacing xenail
Enable bionic 18.04 replacing xenial 16.04. Curl
https://oligarchy.co.uk/xapian/ is failing to validate the SSL cert
with the CA on xenial. See if this fixes it.
Python 3.4 is not supported on bionic is obsolete so remove testing.
It was retained because 3.4 was EPEL version for centos 7. With centos
demise, removed it from 'python:' settings.
Test latest 2.x release, earliest 3.x release supported by bionic
(3.6), last two production 3.x releases and nightly to cut down on
cost of testing. Also run tests in 3.x series in reverse order so 3.9
runs first. Hence we fail early as newest pythons seem to have more
issues with the code.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 30 Sep 2021 20:31:29 -0400 |
| parents | 042c50d5e06e |
| children | ca62a7cc3c9b |
line wrap: on
line source
from __future__ import print_function import re hg_url_base = r'http://sourceforge.net/p/roundup/code/ci/' substitutions = [ (re.compile(r'debian:\#(?P<id>\d+)'), r'<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=\g<id>">debian#\g<id></a>' ), (re.compile(r'\#(?P<ws>\s*)(?P<id>\d+)'), r"<a href='issue\g<id>'>#\g<ws>\g<id></a>" ), (re.compile(r'(?P<prews>^|\s+)issue(?P<ws>\s*)(?P<id>\d+)'), r"\g<prews><a href='issue\g<id>'>issue\g<ws>\g<id></a>" ), # matching the typical number:hash format of hg's own output # and then use use hash instead of the number (re.compile(r'(?P<prews>(^|\s+))(?P<revstr>(rev\s*|hg\s*|changeset: ))(?P<revnumber>\d+):(?P<refhash>[0-9a-fA-F]{12,40})(?P<post>\W+|$)'), r'\g<prews><a href="' + hg_url_base + '\g<refhash>">\g<revstr>\g<revnumber>:\g<refhash></a>\g<post>'), # matching hg revison number or hash (re.compile(r'(?P<prews>(^|\s+))(?P<revstr>(revision|rev|r)\s?)(?P<revision>([1-9][0-9]*)|[0-9a-fA-F]{4,40})(?P<post>\W+|$)'), r'\g<prews><a href="' + hg_url_base + '\g<revision>">\g<revstr>\g<revision></a>\g<post>'), ] def local_replace(message): for cre, replacement in substitutions: message = cre.sub(replacement, message) return message def init(instance): instance.registerUtil('localReplace', local_replace) def quicktest(msgstr, should_replace = True, substr = True): testcount['run'] += 1 replacedstr = local_replace(msgstr) if not (not replacedstr == msgstr ) == should_replace: print("(fail)", end=' ') testcount['failed'] += 1 elif substr and (msgstr not in replacedstr): print("(fail)", end=' ') testcount['failed'] += 1 if replacedstr == msgstr: print( "'%s'" % (msgstr,)) else: print("'%s' -> '%s'" % (msgstr, replacedstr)) if "__main__" == __name__: testcount = {'run':0 , 'failed': 0} print("Replacement examples:") quicktest(" debian:#222", substr=False) quicktest(" #555", substr=False) quicktest("issue333") quicktest(" revision 222", substr=False) quicktest(" r 222", substr=False) quicktest(" wordthatendswithr 222", False) quicktest(" references", False) quicktest(" too many spaces r 222", False) quicktest("re-evaluate", False) quicktest("rex140eb", False) quicktest("rev 012", False) # too short for a hg hash quicktest("rev 0123") quicktest("re140eb") quicktest(" r7140eb", substr=False) quicktest(" rev7140eb ", substr=False) quicktest("rev7140eb") quicktest("rev7140eb,", substr=False) quicktest("rev4891:ad3d628e73f2") quicktest("hg4891:ad3d628e73f2") quicktest("changeset: 4542:46239c21a1eb") quicktest("rev 4542:46239c21a1eb") quicktest("rev 4542:46239c21a1eb") # many spaces print() print(testcount)
