Skip to content

Commit

Permalink
Merge pull request #904 from sphinx-contrib/test-admonitions-v2
Browse files Browse the repository at this point in the history
tests: adding unit tests for v2 admonitions
  • Loading branch information
jdknight authored Mar 3, 2024
2 parents 82a2d13 + ea443eb commit abb51b9
Showing 1 changed file with 49 additions and 1 deletion.
50 changes: 49 additions & 1 deletion tests/unit-tests/test_rst_admonitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from tests.lib.parse import parse
from tests.lib.testcase import ConfluenceTestCase
from tests.lib.testcase import setup_builder
from tests.lib.testcase import setup_editor


class TestConfluenceRstAdmonitions(ConfluenceTestCase):
Expand All @@ -14,7 +15,7 @@ def setUpClass(cls):
cls.dataset = cls.datasets / 'rst' / 'admonitions'

@setup_builder('confluence')
def test_storage_rst_admonitions(self):
def test_storage_rst_admonitions_default(self):
out_dir = self.build(self.dataset)

with parse('index', out_dir) as data:
Expand All @@ -40,6 +41,53 @@ def test_storage_rst_admonitions(self):
self.assertEqual(icon_param.text, 'false',
'admonition icon value is not disabled')

@setup_builder('confluence')
@setup_editor('v2')
def test_storage_rst_admonitions_v2(self):
out_dir = self.build(self.dataset)

with parse('index', out_dir) as data:
self._verify_storage_tags(data, 'attention', 'note')
self._verify_storage_tags(data, 'caution', 'note')
self._verify_storage_tags(data, 'danger', 'warning')
self._verify_storage_tags(data, 'error', 'warning')
self._verify_storage_tags(data, 'hint', 'tip')
self._verify_storage_tags(data, 'important', 'warning')
self._verify_storage_tags(data, 'note', 'info')
self._verify_storage_tags(data, 'tip', 'tip')
self._verify_storage_tags(data, 'warning', 'warning')

# v2 admonition is stored in a adf panel node
# - adf nodes are wrapped in extension tags
# - adf node should indicate that its a panel type
# - inside the content should be the header and data
adf_ext = data.find('ac:adf-extension', recursive=False)
self.assertIsNotNone(adf_ext)

adf_node = adf_ext.find('ac:adf-node', recursive=False)
self.assertIsNotNone(adf_node)
self.assertTrue(adf_node.has_attr('type'))
self.assertEqual(adf_node['type'], 'panel')

adf_attrib = adf_node.find('ac:adf-attribute', recursive=False)
self.assertIsNotNone(adf_attrib)
self.assertTrue(adf_attrib.has_attr('key'))
self.assertEqual(adf_attrib['key'], 'panel-type')
self.assertEqual(adf_attrib.text, 'note')

adf_content = adf_node.find('ac:adf-content', recursive=False)
self.assertIsNotNone(adf_content)

header = adf_content.find('h3', recursive=False)
self.assertIsNotNone(header)
self.assertEqual(header.text, 'my-title',
'admonition title value does not match expected')

paragraph = adf_content.find('p', recursive=False)
self.assertIsNotNone(paragraph)
self.assertEqual(paragraph.text, 'admonition content',
'admonition content does not match expected')

def _verify_storage_tags(self, data, text, expected_type):
text += ' content'

Expand Down

0 comments on commit abb51b9

Please sign in to comment.