You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/11/18 22:56:26 UTC
[5/6] git commit: [#6837] Translate rev links when importing from Trac
[#6837] Translate rev links when importing from Trac
Also fixed a couple of issues with handling of ticket links and
escaping brackets in link text
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/50d80744
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/50d80744
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/50d80744
Branch: refs/heads/cj/6837
Commit: 50d8074481aa7aa6dfe28d3ce30b6be526841403
Parents: e3b8453
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Nov 15 22:39:26 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Nov 18 21:40:06 2013 +0000
----------------------------------------------------------------------
.../forgeimporters/trac/tests/test_tickets.py | 35 ++++++++++++++------
ForgeImporters/forgeimporters/trac/tickets.py | 9 +++--
2 files changed, 32 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/50d80744/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
index 77ebdbc..c92b028 100644
--- a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
@@ -155,16 +155,31 @@ class TestTracImportSupport(TestCase):
def test_link_processing(self):
import_support = TracImportSupport()
import_support.get_slug_by_id = lambda ticket, comment: '123'
- result = import_support.link_processing('''\
- test link [[2496]](http://testlink.com)
- test ticket ([#201](http://sourceforge.net/apps/trac/sourceforge/ticket/201))
- Replying to [someuser](http://sourceforge.net/apps/trac/sourceforge/ticket/204#comment:1)
- #200 unchanged''')
-
- assert "test link [\[2496\]](http://testlink.com)" in result
- assert 'test ticket ([#201](201))' in result
- assert 'Replying to [someuser](204/#123)' in result
- assert '#200 unchanged' in result, result
+ cases = {
+ 'test link [[2496]](http://testlink.com)':
+ "test link [\[2496\]](http://testlink.com)",
+
+ 'test ticket ([#201](http://site.net/apps/trac/project/ticket/201))':
+ 'test ticket ([#201](201))',
+
+ 'Replying to [someuser](http://site.net/apps/trac/project/ticket/204#comment:1)':
+ 'Replying to [someuser](204/#123)',
+
+ '**description** modified ([diff](http://site.net/apps/trac/project/ticket/205?action=diff&version=1))':
+ '**description** modified ([diff](205))',
+
+ 'Fixed in [r1000](http://site.net/apps/trac/project/changeset/1000)':
+ 'Fixed in [r1000](r1000)',
+
+ '[[Double brackets]](1) the [[whole way]](2).':
+ '[\[Double brackets\]](1) the [\[whole way\]](2).',
+
+ '#200 unchanged':
+ '#200 unchanged',
+ }
+ for input, expected in cases.items():
+ actual = import_support.link_processing(input)
+ self.assertEqual(actual, expected)
class TestTracImportSupportFunctional(TestRestApiBase, TestCase):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/50d80744/ForgeImporters/forgeimporters/trac/tickets.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/tickets.py b/ForgeImporters/forgeimporters/trac/tickets.py
index d86f965..4fd8fdf 100644
--- a/ForgeImporters/forgeimporters/trac/tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tickets.py
@@ -189,6 +189,9 @@ class TracImportSupport(ImportSupport):
else:
return text
+ def changeset_link(self, m):
+ return '(r%s)' % m.group(1)
+
def brackets_escaping(self, m):
"""Escape double brackets."""
return '[\[%s\]]' % m.groups()[0]
@@ -203,11 +206,13 @@ class TracImportSupport(ImportSupport):
"""
comment_pattern = re.compile('\[(\S*\s*\S*)\]\(\S*/(\d+\n*\d*)#comment:(\d+)\)')
- ticket_pattern = re.compile('(?<=\])\(\S*ticket/(\d+)\)')
- brackets_pattern = re.compile('\[\[(.*)\]\]')
+ ticket_pattern = re.compile('(?<=\])\(\S*ticket/(\d+)(?:\?[^)]*)?\)')
+ changeset_pattern = re.compile(r'(?<=\])\(\S*/changeset/(\d+)(?:\?[^]]*)?\)')
+ brackets_pattern = re.compile('\[\[([^]]*)\]\]')
text = comment_pattern.sub(self.comment_link, text)
text = ticket_pattern.sub(self.ticket_link, text)
+ text = changeset_pattern.sub(self.changeset_link, text)
text = brackets_pattern.sub(self.brackets_escaping, text)
return text