[#8416] use regex library everywhere, particularly within Markdown library that handles some of our markdown extensions
diff --git a/Allura/allura/lib/markdown_extensions.py b/Allura/allura/lib/markdown_extensions.py
index e3844f8..b72bbda 100644
--- a/Allura/allura/lib/markdown_extensions.py
+++ b/Allura/allura/lib/markdown_extensions.py
@@ -51,7 +51,7 @@
# FORGE_LINK_RE copied from markdown pre 3.0's LINK_RE
# TODO: replace these with newer approach, see ForgeLinkPattern
-NOBRACKET = r'[^\]\[]{0,50}' # "*" changed to {0,50} for performance mitigation
+NOBRACKET = r'[^\]\[]{0,100}' # "*" changed to {0,100} for performance mitigation
BRK = (
r'\[(' +
(NOBRACKET + r'(\[')*6 +
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index cec0a86..3b96410 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -139,7 +139,7 @@
r = self.app.get(
url, extra_environ=dict(username=str('*anonymous')), status=302)
r = self.app.get(url)
- assert 're.search' in r, r
+ assert 'regex.regex.search' in r, r
assert '<td>pattern</td>' in r, r
assert '<td>string</td>' in r, r
assert '<th class="second-column-headers side-header">flags</th>' in r, r
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 3974764..bab4591 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -652,11 +652,11 @@
text = g.markdown.convert('See [this is 26 characters long](Home)')
assert 'href="/p/test/wiki-len/Home/">this is 26 characters long</a>' in text, text # {0,12} fails {0,13} ok
- # breaking point, currently. Would be nice if this worked and made a real link:
- char110long = '1234567890'*11
- text = g.markdown.convert(f'See [{char110long}](Home)')
- assert f'<span>[{char110long}]</span>(Home)' in text, text # current limitation, not a link
- # assert f'href="/p/test/wiki-len/Home/">{char110long}</a>' in text, text # ideal output
+ # limit, currently
+ charSuperLong = '1234567890'*21
+ text = g.markdown.convert(f'See [{charSuperLong}](Home)')
+ assert f'<span>[{charSuperLong}]</span>(Home)' in text, text # current limitation, not a link
+ # assert f'href="/p/test/wiki-len/Home/">{charSuperLong}</a>' in text, text # ideal output
@td.with_wiki
diff --git a/requirements.in b/requirements.in
index 6b8fc92..1546be7 100644
--- a/requirements.in
+++ b/requirements.in
@@ -38,6 +38,7 @@
python-oembed
pytz
qrcode
+regex-as-re-globally
requests
requests-oauthlib
# for taskd proc name switching
diff --git a/requirements.txt b/requirements.txt
index 3491105..259c293 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -150,6 +150,10 @@
# ming
qrcode==6.1
# via -r requirements.in
+regex==2022.3.2
+ # via regex-as-re-globally
+regex-as-re-globally==0.0.2
+ # via -r requirements.in
repoze.lru==0.7
# via turbogears2
requests==2.26.0