예제 #1
0
 def test_privatize_with_grandparent(self, expected, private, event: Optional[Event]):
     person = Person('P0')
     person.private = private
     parent = Person('P1')
     person.parents.append(parent)
     grandparent = Person('P2')
     if event is not None:
         Presence(grandparent, Presence.Role.SUBJECT, event)
     parent.parents.append(grandparent)
     ancestry = Ancestry()
     ancestry.people[person.id] = person
     ancestry.people[parent.id] = parent
     ancestry.people[grandparent.id] = grandparent
     sut = Privatizer()
     sut.privatize(ancestry)
     self.assertEquals(expected, person.private)
예제 #2
0
 def test_privatize_with_great_grandchild(self, expected, private, event: Optional[Event]):
     person = Person('P0')
     person.private = private
     child = Person('P1')
     person.children.append(child)
     grandchild = Person('P2')
     child.children.append(grandchild)
     great_grandchild = Person('P2')
     if event is not None:
         Presence(great_grandchild, Presence.Role.SUBJECT, event)
     grandchild.children.append(great_grandchild)
     ancestry = Ancestry()
     ancestry.people[person.id] = person
     sut = Privatizer()
     sut.privatize(ancestry)
     self.assertEquals(expected, person.private)
예제 #3
0
    def test_clean(self):
        ancestry = Ancestry()

        onymous_event = Event('E0', Event.Type.BIRTH)
        onymous_event_presence = Presence(Presence.Role.SUBJECT)
        onymous_event_presence.person = Person('P0')
        onymous_event.presences.add(onymous_event_presence)
        ancestry.events[onymous_event.id] = onymous_event

        anonymous_event = Event('E1', Event.Type.BIRTH)
        ancestry.events[anonymous_event.id] = anonymous_event

        onymous_place = Place('P0', 'Amsterdam')
        onymous_place.events.add(onymous_event)
        ancestry.places[onymous_place.id] = onymous_place

        anonymous_place = Place('P1', 'Almelo')
        ancestry.places[anonymous_place.id] = anonymous_place

        onmyous_place_because_encloses_onmyous_places = Place(
            'P3', 'Netherlands')
        onmyous_place_because_encloses_onmyous_places.encloses.add(
            onymous_place)
        onmyous_place_because_encloses_onmyous_places.encloses.add(
            anonymous_place)
        ancestry.places[onmyous_place_because_encloses_onmyous_places.
                        id] = onmyous_place_because_encloses_onmyous_places

        clean(ancestry)

        self.assertDictEqual({
            onymous_event.id: onymous_event,
        }, ancestry.events)
        self.assertDictEqual(
            {
                onymous_place.id:
                onymous_place,
                onmyous_place_because_encloses_onmyous_places.id:
                onmyous_place_because_encloses_onmyous_places,
            }, ancestry.places)

        self.assertNotIn(
            anonymous_place,
            onmyous_place_because_encloses_onmyous_places.encloses)