68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
import unittest
|
|
from pathlib import Path
|
|
|
|
from src.great_ai.utilities.publication_tei import PublicationTEI
|
|
|
|
|
|
from .data.parsed import (
|
|
abstract,
|
|
authors,
|
|
bookmarks,
|
|
conclusion,
|
|
content,
|
|
introduction,
|
|
metadata,
|
|
sentences,
|
|
)
|
|
|
|
DATA_PATH = Path(__file__).parent.resolve() / "data"
|
|
|
|
|
|
class TestPublicationTEI(unittest.TestCase):
|
|
test_xml: str
|
|
|
|
@classmethod
|
|
def setUpClass(cls) -> None:
|
|
with open(
|
|
DATA_PATH / "10.1136_bmjspcare-2021-003026.pdf.tei.xml", encoding="utf-8"
|
|
) as f:
|
|
cls.test_xml = f.read()
|
|
|
|
def test_metadata_extraction(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).publication_metadata, metadata)
|
|
|
|
def test_authors(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).authors, authors)
|
|
|
|
def test_content(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).content, content)
|
|
|
|
def test_sentences(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).sentences, sentences)
|
|
|
|
def test_bookmarks(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).bookmarks, bookmarks)
|
|
|
|
def test_abstract(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).abstract_sentences, abstract)
|
|
|
|
def test_introduction(self) -> None:
|
|
self.assertEqual(
|
|
PublicationTEI(self.test_xml).introduction_sentences, introduction
|
|
)
|
|
|
|
def test_conclusion(self) -> None:
|
|
self.assertEqual(PublicationTEI(self.test_xml).conclusion_sentences, conclusion)
|
|
|
|
def test_empty1(self) -> None:
|
|
tei = PublicationTEI("<TEI/>")
|
|
tei.publication_metadata, tei.publication_metadata, tei.authors, tei.content, tei.sentences
|
|
|
|
def test_empty2(self) -> None:
|
|
tei = PublicationTEI("")
|
|
tei.publication_metadata, tei.publication_metadata, tei.authors, tei.content, tei.sentences
|
|
|
|
def test_missing_fields(self) -> None:
|
|
with open(DATA_PATH / "bad.tei.xml", encoding="utf-8") as f:
|
|
tei = PublicationTEI(f.read())
|
|
tei.publication_metadata, tei.publication_metadata, tei.authors, tei.content, tei.sentences
|