2
0
Fork 0
textout/tests/test_tags.py

40 lines
1.3 KiB
Python

#!/usr/bin/env python
# *****************************************************************************
# Copyright (C) 2023 Thomas Touhey <thomas@touhey.fr>
# This file is part of the textoutpc project, which is MIT-licensed.
# *****************************************************************************
"""Tags tests for textoutpc."""
from __future__ import annotations
from typing import Sequence
from docutils.nodes import Node, Text, TextElement, container
import pytest
from textoutpc.tags import Tag
@pytest.mark.parametrize(
"nodes,expected",
(
([], ""),
([TextElement("", Text("hello, world"))], "hello, world"),
),
)
def test_get_raw_text(nodes: Sequence[Node], expected: str):
"""Get raw text."""
assert Tag.get_text_from_raw_children(nodes) == expected
def test_get_raw_text_with_more_children():
"""Check that raw text cannot be obtained in some cases."""
with pytest.raises(AssertionError, match=r"More than one"):
Tag.get_text_from_raw_children([Text("hello,"), Text(" world")])
def test_get_raw_text_from_unsupported_children():
"""Check that raw text cannot be obtained with unsupported types."""
with pytest.raises(AssertionError, match=r"Unsupported child"):
Tag.get_text_from_raw_children([container("", Text("hello"))])