def test_proccessor_invalid_type_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "other" instance.content_object.subject = "test" result = render(dummy_project, "**#4**") assert result == "<p><strong>#4</strong></p>"
def test_proccessor_valid_user_mention_with_dashes(): user=factories.UserFactory(username="******", full_name="test name") project=factories.ProjectFactory(id=1, slug="test") factories.MembershipFactory(user=user, project=project) result = render(project, "**@user1_text_after_dash**") expected_result = "<p><strong><a class=\"mention\" href=\"http://*****:*****@user1_text_after_dash</a></strong></p>" assert result == expected_result
def test_proccessor_valid_issue_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "issue" instance.content_object.subject = "test" result = render(dummy_project, "**#2**") expected_result = '<p><strong><a alt="test" class="reference issue" href="/#/project/test/issues/2" title="test">#2</a></strong></p>' assert result == expected_result
def test_proccessor_valid_us_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "userstory" instance.content_object.subject = "test" result = render(dummy_project, "**#1**") expected_result = '<p><strong><a alt="test" class="reference user-story" href="http://localhost:9001/project/test/us/1" title="test">#1</a></strong></p>' assert result == expected_result
def test_proccessor_valid_task_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "task" instance.content_object.subject = "test" result = render(dummy_project, "**#3**") expected_result = '<p><strong><a class="reference task" href="http://localhost:9001/project/test/task/3" title="#3 test">#3</a></strong></p>' assert result == expected_result
def test_proccessor_valid_us_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "userstory" instance.content_object.subject = "test" result = render(dummy_project, "**#1**") expected_result = '<p><strong><a alt="test" class="reference user-story" href="http://localhost:9001/project/test/us/1" title="test">#1</a></strong></p>' assert result == expected_result
def test_proccessor_valid_issue_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: instance = mock.return_value instance.content_type.model = "issue" instance.content_object.subject = "test" result = render(dummy_project, "**#2**") expected_result = '<p><strong><a class="reference issue" href="http://localhost:9001/project/test/issue/2" title="#2 test">#2</a></strong></p>' assert result == expected_result
def test_mentions_valid_username_with_dash(): with patch("taiga.mdrender.extensions.mentions.get_user_model") as get_user_model_mock: dummy_uuser = MagicMock() dummy_uuser.get_full_name.return_value = "Ginny Weasley" get_user_model_mock.return_value.objects.get = MagicMock(return_value=dummy_uuser) result = render(dummy_project, "text @super-ginny text") get_user_model_mock.return_value.objects.get.assert_called_with(username="******") assert result == ('<p>text <a class="mention" href="http://*****:*****@super-ginny</a> text</p>')
def test_mentions_valid_username_with_points(): with patch("taiga.mdrender.extensions.mentions.get_user_model") as get_user_model_mock: dummy_uuser = MagicMock() dummy_uuser.get_full_name.return_value = "Luna Lovegood" get_user_model_mock.return_value.objects.get = MagicMock(return_value=dummy_uuser) result = render(dummy_project, "text @luna.lovegood text") get_user_model_mock.return_value.objects.get.assert_called_with(username="******") assert result == ('<p>text <a class="mention" href="http://*****:*****@luna.lovegood</a> text</p>')
def test_mentions_valid_username(): with patch("taiga.mdrender.extensions.mentions.get_user_model") as get_user_model_mock: dummy_uuser = MagicMock() dummy_uuser.get_full_name.return_value = "Hermione Granger" get_user_model_mock.return_value.objects.get = MagicMock(return_value=dummy_uuser) result = render(dummy_project, "text @hermione text") get_user_model_mock.return_value.objects.get.assert_called_with(username="******") assert result == ('<p>text <a class="mention" href="http://*****:*****@hermione</a> text</p>')
def test_render_attachment_file(settings): settings.MEDIA_URL = "http://media.example.com/" attachment_url = "{}path/to/file.pdf#{}=us:42".format(settings.MEDIA_URL, REFRESH_PARAM) sentinel_url = "http://__sentinel__/" md = "[Test]({})".format(attachment_url) expected_result = "<p><a href=\"{}#{}={}\" target=\"_blank\">Test</a></p>".format(sentinel_url, REFRESH_PARAM, "us:42") with patch("taiga.mdrender.extensions.refresh_attachment.get_attachment_by_id") as mock: attachment = mock.return_value attachment.id = 42 attachment.attached_file.url = sentinel_url result = render(dummy_project, md) assert result == expected_result assert mock.called is True mock.assert_called_with(dummy_project.id, 42)
def test_render_relative_image(): assert render(dummy_project, "![test](test.png)") == "<p><img alt=\"test\" src=\"test.png\"></p>"
def test_render_url_automail(): expected_result = "<p>Test the <a href=\"mailto:[email protected]\" target=\"_blank\">[email protected]</a> automail</p>" source = "Test the [email protected] automail" assert render(dummy_project, source) == expected_result
def test_render_url_autolinks(): expected_result = "<p>Test the <a href=\"http://example.com/\" target=\"_blank\">http://example.com/</a> autolink</p>" source = "Test the http://example.com/ autolink" assert render(dummy_project, source) == expected_result
def test_render_wikilink_relative_to_absolute(): expected_result = "<p><a href=\"http://localhost:9001/project/test/\">test project</a></p>" assert render(dummy_project, "[test project](/project/test/)") == expected_result
def test_render_absolute_link(): assert render(dummy_project, "[test](/test)") == "<p><a href=\"/test\">test</a></p>"
def test_render_url_autolinks_without_http(): expected_result = "<p>Test the <a href=\"http://www.example.com\" target=\"_blank\">www.example.com</a> autolink</p>" source = "Test the www.example.com autolink" assert render(dummy_project, source) == expected_result
def test_render_reference_links(): expected_result = "<p>An <a href=\"http://example.com/\" target=\"_blank\" title=\"Title\">example</a> of reference link</p>" source = "An [example][id] of reference link\n [id]: http://example.com/ \"Title\"" assert render(dummy_project, source) == expected_result
def test_render_triple_quote_and_lang_code(): expected_result = "<div class=\"codehilite\"><pre><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s\">\"test\"</span><span class=\"p\">)</span>\n</pre></div>" assert render(dummy_project, "```python\nprint(\"test\")\n```") == expected_result
def test_render_absolute_image(): assert render( dummy_project, "![test](/test.png)") == "<p><img alt=\"test\" src=\"/test.png\"></p>"
def test_render_markdown_to_html(): assert render(dummy_project, "- [x] test") == "<ul class=\"task-list\">\n<li class=\"task-list-item\"><label class=\"task-list-control\"><input checked type=\"checkbox\"><span class=\"task-list-indicator\"></span></label> test</li>\n</ul>"
def test_render_triple_quote_and_lang_code(): expected_result = '<div class="codehilite"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>\n</code></pre></div>' assert render(dummy_project, "```python\nprint(\"test\")\n```") == expected_result
def test_render_wikilink_obj_without_slug_relative(): expected_result = "<p><a class=\"reference wiki\" href=\"http://localhost:9001/project/test/wiki/wiki_page\">test project</a></p>" assert render(dummy_object, "[test project](wiki_page)") == expected_result
def test_render_triple_quote_and_lang_code(): expected_result = '<div class="codehilite"><pre><span></span><span class="k">print</span><span class="p">(</span><span class="s2">"test"</span><span class="p">)</span>\n</pre></div>' assert render(dummy_project, "```python\nprint(\"test\")\n```") == expected_result
def test_render_wiki_strong(): assert render(dummy_project, "**test**") == "<p><strong>test</strong></p>" assert render(dummy_project, "__test__") == "<p><strong>test</strong></p>"
def test_render_wikilink_1(): expected_result = "<p><a class=\"reference wiki\" href=\"http://localhost:9001/project/test/wiki/test\" title=\"test\">test</a></p>" assert render(dummy_project, "[[test]]") == expected_result
def test_render_wikilink_with_custom_title(): expected_result = "<p><a class=\"reference wiki\" href=\"http://localhost:9001/project/test/wiki/test\" title=\"custom\">custom</a></p>" assert render(dummy_project, "[[test|custom]]") == expected_result
def test_render_wikilink_with_custom_title(): expected_result = "<p><a class=\"wikilink\" href=\"/project/test/wiki/test\">custom</a></p>" assert render(dummy_project, "[[test|custom]]") == expected_result
def test_render_relative_image(): assert render( dummy_project, "![test](test.png)") == "<p><img alt=\"test\" src=\"test.png\"></p>"
def test_proccessor_valid_user_mention(): factories.UserFactory(username="******", full_name="test name") result = render(dummy_project, "**@user1**") expected_result = "<p><strong><a class=\"mention\" href=\"http://*****:*****@user1</a></strong></p>" assert result == expected_result
def test_proccessor_invalid_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref" ) as mock: mock.return_value = None result = render(dummy_project, "**#5**") assert result == "<p><strong>#5</strong></p>"
def test_proccessor_invalid_user_mention(): result = render(dummy_project, "**@notvaliduser**") assert result == '<p><strong>@notvaliduser</strong></p>'
def test_render_wiki_italic(): assert render(dummy_project, "*test*") == "<p><em>test</em></p>" assert render(dummy_project, "_test_") == "<p><em>test</em></p>"
def test_proccessor_valid_email(): result = render(dummy_project, "**[email protected]**") expected_result = "<p><strong><a href=\"mailto:[email protected]\" target=\"_blank\">[email protected]</a></strong></p>" assert result == expected_result
def test_render_wikilink_3(): expected_result = "<p><a class=\"reference wiki\" href=\"http://localhost:9001/project/test/wiki/testpage\" title=\"TestPage\">TestPage</a></p>" assert render(dummy_project, "[[TestPage]]") == expected_result
def mdrender(project, text) -> str: if text: return Markup(render(project, text)) return ""
def test_render_wikilink_slug_to_wikipages(): expected_result = "<p><a class=\"reference wiki\" href=\"http://localhost:9001/project/test/wiki/wiki_page\" title=\"wiki page\">wiki</a></p>" assert render(dummy_project, "[wiki](wiki_page \"wiki page\")") == expected_result
def test_render_wiki_strike(): assert render(dummy_project, "~~test~~") == "<p><del>test</del></p>"
def test_proccessor_invalid_reference(): with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock: mock.return_value = None result = render(dummy_project, "**#5**") assert result == "<p><strong>#5</strong></p>"
def test_render_absolute_image(): assert render(dummy_project, "![test](/test.png)") == "<p><img alt=\"test\" src=\"/test.png\"></p>"
def test_render_triple_quote_code(): expected_result = "<div class=\"codehilite\"><pre><span class=\"n\">print</span><span class=\"p\">(</span><span class=\"s\">"test"</span><span class=\"p\">)</span>\n</pre></div>" assert render(dummy_project, "```\nprint(\"test\")\n```") == expected_result