# -*- coding: utf-8 -*-
"""
(c) 2016 - Copyright Red Hat Inc
Authors:
Jeremy Cline <jeremy@jcline.org>
"""
from __future__ import unicode_literals, absolute_import
import unittest
from xml.etree import ElementTree
from mock import patch, Mock
from pagure import pfmarkdown
from pagure.lib import model
@patch('pagure.pfmarkdown.flask.url_for', Mock(return_value='http://eh/'))
class TestObjAnchorTag(unittest.TestCase):
"""
A set of tests for the pagure.pfmarkdown._obj_anchor_tag function
"""
def test_obj_anchor_tag_issue(self):
"""Assert links to issues are generated correctly"""
issue = model.Issue(
title='The issue summary',
content='The issue description',
)
expected_markup = (b'<a href="http://eh/" title="The issue summary">'
b'My Issue</a>')
element = pfmarkdown._obj_anchor_tag(
'jcline', None, None, issue, 'My Issue')
self.assertEqual(expected_markup, ElementTree.tostring(element))
def test_obj_anchor_tag_private_issue(self):
"""Assert links to private issues hide the title"""
issue = model.Issue(
title='The private issue summary',
content='The issue description',
private=True
)
expected_markup = (b'<a href="http://eh/" title="Private issue">'
b'My Issue</a>')
element = pfmarkdown._obj_anchor_tag(
'jcline', None, None, issue, 'My Issue')
self.assertEqual(expected_markup, ElementTree.tostring(element))
def test_obj_anchor_tag_pr(self):
"""Assert links to pull requests are generated correctly"""
pr = model.PullRequest(title='The pull request summary')
expected_markup = (b'<a href="http://eh/" title="The pull request '
b'summary">My Pull Request</a>')
element = pfmarkdown._obj_anchor_tag(
'jcline', None, None, pr, 'My Pull Request')
self.assertEqual(expected_markup, ElementTree.tostring(element))
if __name__ == '__main__':
unittest.main(verbosity=2)