from unittest.mock import patch, MagicMock import pytest import taiga.base from taiga.mdrender.extensions import mentions from taiga.mdrender.extensions import emojify from taiga.mdrender.service import render from taiga.projects.references import services from taiga.users.models import User dummy_project = MagicMock() dummy_project.id = 1 dummy_project.slug = "test" def test_proccessor_valid_emoji(): result = emojify.EmojifyPreprocessor().run(["**:smile:**"]) assert result == ["****"] def test_proccessor_invalid_emoji(): result = emojify.EmojifyPreprocessor().run(["**:notvalidemoji:**"]) assert result == ["**:notvalidemoji:**"] def test_proccessor_valid_user_mention(): with patch("taiga.mdrender.extensions.mentions.User") as mock: instance = mock.objects.get.return_value instance.get_full_name.return_value = "test name" result = render(dummy_project, "**@user1**") expected_result = "
" assert result == expected_result def test_proccessor_invalid_user_mention(): with patch("taiga.mdrender.extensions.mentions.User") as mock: mock.DoesNotExist = User.DoesNotExist mock.objects.get.side_effect = User.DoesNotExist result = render(dummy_project, "**@notvaliduser**") assert result == '@notvaliduser
' 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 = '' 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, "**#1**") expected_result = '' 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, "**#1**") expected_result = '' 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, "**#1**") assert result == "#1
" def test_render_wiki_strong(): assert render(dummy_project, "**test**") == "test
" assert render(dummy_project, "__test__") == "test
" def test_render_wiki_italic(): assert render(dummy_project, "*test*") == "test
" assert render(dummy_project, "_test_") == "test
" def test_render_wiki_strike(): assert render(dummy_project, "~~test~~") == "test
An example of reference link
" source = "An [example][id] of reference link\n [id]: http://example.com/ \"Title\"" assert render(dummy_project, source) == expected_result def test_render_url_autolinks(): expected_result = "Test the http://example.com/ autolink
" source = "Test the http://example.com/ autolink" assert render(dummy_project, source) == expected_result def test_render_absolute_image(): assert render(dummy_project, "") == "print("test")\n
print("test")\n