doi2dataset/tests/test_person.py
Alexander Minges eb270cba9b
All checks were successful
Test pipeline / test (push) Successful in 12s
Update testing documentation and improve test structure
2025-05-20 15:17:18 +02:00

95 lines
No EOL
2.7 KiB
Python

import pytest
from doi2dataset import Person, Institution
def test_person_to_dict_with_string_affiliation():
"""Test Person.to_dict() with a string affiliation."""
person = Person(
family_name="Doe",
given_name="John",
orcid="0000-0001-2345-6789",
email="john.doe@example.org",
affiliation="Test University",
project=["Project A"]
)
result = person.to_dict()
assert result["family_name"] == "Doe"
assert result["given_name"] == "John"
assert result["orcid"] == "0000-0001-2345-6789"
assert result["email"] == "john.doe@example.org"
assert result["project"] == ["Project A"]
assert result["affiliation"] == "Test University"
def test_person_to_dict_with_institution_ror():
"""Test Person.to_dict() with an Institution that has a ROR ID."""
inst = Institution("Test University", "https://ror.org/12345")
person = Person(
family_name="Doe",
given_name="John",
orcid="0000-0001-2345-6789",
email="john.doe@example.org",
affiliation=inst,
project=["Project A"]
)
result = person.to_dict()
assert result["affiliation"] == "https://ror.org/12345"
# Check other fields too
assert result["family_name"] == "Doe"
assert result["given_name"] == "John"
def test_person_to_dict_with_institution_display_name_only():
"""Test Person.to_dict() with an Institution that has only a display_name."""
inst = Institution("Test University") # No ROR ID
person = Person(
family_name="Smith",
given_name="Jane",
orcid="0000-0001-9876-5432",
affiliation=inst
)
result = person.to_dict()
assert result["affiliation"] == "Test University"
assert result["family_name"] == "Smith"
assert result["given_name"] == "Jane"
def test_person_to_dict_with_empty_institution():
"""Test Person.to_dict() with an Institution that has neither ROR nor display_name."""
# Create an Institution with empty values
inst = Institution("")
person = Person(
family_name="Brown",
given_name="Robert",
affiliation=inst
)
result = person.to_dict()
assert result["affiliation"] == ""
assert result["family_name"] == "Brown"
assert result["given_name"] == "Robert"
def test_person_to_dict_with_no_affiliation():
"""Test Person.to_dict() with no affiliation."""
person = Person(
family_name="Green",
given_name="Alice",
orcid="0000-0002-1111-2222"
)
result = person.to_dict()
assert result["affiliation"] == ""
assert result["family_name"] == "Green"
assert result["given_name"] == "Alice"
assert result["orcid"] == "0000-0002-1111-2222"