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/14 18:36:26 UTC
[05/43] git commit: [#6622] ticket:435 Convert github mardown in
tickets & comments
[#6622] ticket:435 Convert github mardown in tickets & comments
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/b6f29e90
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/b6f29e90
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/b6f29e90
Branch: refs/heads/cj/6836
Commit: b6f29e90a3c187eea388dfd776a472b489e11a76
Parents: 44a7d0a
Author: Igor Bondarenko <je...@gmail.com>
Authored: Mon Oct 14 14:30:29 2013 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Wed Nov 13 17:16:55 2013 +0000
----------------------------------------------------------------------
ForgeImporters/forgeimporters/github/tracker.py | 5 +-
ForgeImporters/forgeimporters/github/utils.py | 2 +-
.../forgeimporters/tests/github/test_tracker.py | 65 ++++++++++++++++++++
3 files changed, 69 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b6f29e90/ForgeImporters/forgeimporters/github/tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/tracker.py b/ForgeImporters/forgeimporters/github/tracker.py
index ebed4ed..c3c7ab4 100644
--- a/ForgeImporters/forgeimporters/github/tracker.py
+++ b/ForgeImporters/forgeimporters/github/tracker.py
@@ -49,6 +49,7 @@ from ..base import ToolImporter
from forgetracker.tracker_main import ForgeTrackerApp
from forgetracker import model as TM
from forgeimporters.base import ToolImportForm
+from forgeimporters.github.utils import GitHubMarkdownConverter
class GitHubTrackerImportForm(ToolImportForm):
@@ -169,7 +170,7 @@ class GitHubTrackerImporter(ToolImporter):
u'{body}').format(
creator=self.get_user_link(issue['user']['login']),
owner=owner_line,
- body=body,
+ body=GitHubMarkdownConverter().convert(body),
)
ticket.labels = [label['name'] for label in issue['labels']]
@@ -181,7 +182,7 @@ class GitHubTrackerImporter(ToolImporter):
self.get_user_link(comment['user']['login']))
body = posted_by + body
p = ticket.discussion_thread.add_post(
- text = body,
+ text = GitHubMarkdownConverter().convert(body),
ignore_security = True,
timestamp = self.parse_datetime(comment['created_at']),
)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b6f29e90/ForgeImporters/forgeimporters/github/utils.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/github/utils.py b/ForgeImporters/forgeimporters/github/utils.py
index c095f81..ab66157 100644
--- a/ForgeImporters/forgeimporters/github/utils.py
+++ b/ForgeImporters/forgeimporters/github/utils.py
@@ -44,4 +44,4 @@ class GitHubMarkdownConverter(object):
@classmethod
def _convert_codeblock(cls, match):
- return '\n~~~~%s~~~~\n'% match.group(1)
+ return '~~~~%s~~~~'% match.group(1)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b6f29e90/ForgeImporters/forgeimporters/tests/github/test_tracker.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/github/test_tracker.py b/ForgeImporters/forgeimporters/tests/github/test_tracker.py
index 262ff1e..7cd3c90 100644
--- a/ForgeImporters/forgeimporters/tests/github/test_tracker.py
+++ b/ForgeImporters/forgeimporters/tests/github/test_tracker.py
@@ -179,3 +179,68 @@ class TestTrackerImporter(TestCase):
text='- **assigned_to**: [luke](https://github.com/luke)',
timestamp=datetime(2013, 9, 12, 10, 14, 0),
ignore_security=True))
+
+ def test_github_markdown_converted_in_description(self):
+ ticket = mock.Mock()
+ body = '''Hello
+
+```python
+def hello(name):
+ print "Hello, " + name
+```'''
+ body_converted = '''*Originally created by:* [creator](https://github.com/creator)
+*Originally owned by:* [owner](https://github.com/owner)
+
+Hello
+
+~~~~
+def hello(name):
+ print "Hello, " + name
+~~~~'''
+ issue = {
+ 'body': body,
+ 'title': 'title',
+ 'state': 'New',
+ 'created_at': 'created_at',
+ 'updated_at': 'updated_at',
+ 'assignee': {'login': 'owner'},
+ 'user': {'login': 'creator'},
+ 'labels': [{'name': 'first'}, {'name': 'second'}],
+ }
+ importer = tracker.GitHubTrackerImporter()
+ with mock.patch.object(tracker, 'datetime') as dt:
+ dt.strptime.side_effect = lambda s,f: s
+ importer.process_fields(ticket, issue)
+ self.assertEqual(ticket.description.strip(), body_converted.strip())
+
+ def test_github_markdown_converted_in_comments(self):
+ ticket = mock.Mock()
+ extractor = mock.Mock()
+ body = '''Hello
+
+```python
+def hello(name):
+ print "Hello, " + name
+```'''
+ body_converted = '''*Originally posted by:* [me](https://github.com/me)
+Hello
+
+~~~~
+def hello(name):
+ print "Hello, " + name
+~~~~'''
+ issue = {'comments_url': '/comments'}
+ extractor.iter_comments.return_value = [
+ {
+ 'body': body,
+ 'created_at': '2013-08-26T16:57:53Z',
+ 'user': {'login': 'me'},
+ }
+ ]
+ importer = tracker.GitHubTrackerImporter()
+ importer.process_comments(extractor, ticket, issue)
+ self.assertEqual(ticket.discussion_thread.add_post.call_args_list[0], mock.call(
+ text=body_converted,
+ timestamp=datetime(2013, 8, 26, 16, 57, 53),
+ ignore_security=True,
+ ))