async def test_with_witnesses(self): event = Event(Birth()) Presence(Person('P0'), Witness(), event) expected = 'Birth' async with self._render(data={ 'event': event, }) as (actual, _): self.assertEqual(expected, actual)
async def test_with_person_context_as_witness(self): event = Event(Birth()) person = Person('P0') Presence(person, Witness(), event) expected = 'Birth (Witness)' async with self._render(data={ 'event': event, 'person_context': person, }) as (actual, _): self.assertEqual(expected, actual)
class TestWitnessRoleTest(TemplateTestCase): @parameterized.expand([ ('true', Witness()), ('false', Witness), ('false', Attendee()), ('false', 9), ]) @sync async def test(self, expected, data) -> None: template = '{% if data is witness_role %}true{% else %}false{% endif %}' async with self._render(template_string=template, data={ 'data': data, }) as (actual, _): self.assertEquals(expected, actual)
def test_label(self) -> None: sut = Witness() with Translations(NullTranslations()): self.assertIsInstance(sut.label, str) self.assertNotEqual('', sut.label)
def test_name(self) -> None: self.assertIsInstance(Witness.name(), str) self.assertNotEqual('', Witness.name)
for child_handle_element in child_handle_elements: child = loader._people[child_handle_element.get('hlink')] for parent in parents: parent.children.append(child) def _load_eventrefs(loader: _Loader, person: Person, element: ElementTree.Element) -> None: eventrefs = _xpath(element, './ns:eventref') for eventref in eventrefs: _load_eventref(loader, person, eventref) _PRESENCE_ROLE_MAP = { 'Primary': Subject(), 'Family': Subject(), 'Witness': Witness(), 'Beneficiary': Beneficiary(), 'Unknown': Attendee(), } def _load_eventref(loader: _Loader, person: Person, eventref: ElementTree.Element) -> None: event_handle = eventref.get('hlink') gramps_presence_role = eventref.get('role') role = _PRESENCE_ROLE_MAP[gramps_presence_role] if gramps_presence_role in _PRESENCE_ROLE_MAP else Attendee() Presence(person, role, loader._events[event_handle]) def _load_places(loader: _Loader, database: ElementTree.Element): intermediate_places = {handle: intermediate_place for handle, intermediate_place in [_load_place(element) for element in _xpath(database, './ns:places/ns:placeobj')]}