* src/plugins/TestcaseGenerator.py: Use new RelLib API

* src/GrampsDb/_GrampsBSDDB.py (_update_reference_map): Dont crash if no_longer_required_references dont exist in the database


svn: r5647
This commit is contained in:
Martin Hawlisch 2005-12-30 15:56:21 +00:00
parent 7cdfd4505e
commit d54b225e53
3 changed files with 52 additions and 48 deletions

View File

@ -2,6 +2,10 @@
* src/ReportUtils.py: Use new RelLib API * src/ReportUtils.py: Use new RelLib API
* src/PedView.py: Use ReportUtils to generate text; highlight selected * src/PedView.py: Use ReportUtils to generate text; highlight selected
person; enable Tooltips; Optionally show peoples images person; enable Tooltips; Optionally show peoples images
* src/plugins/TestcaseGenerator.py: Use new RelLib API
* src/GrampsDb/_GrampsBSDDB.py (_update_reference_map): Dont crash if
no_longer_required_references dont exist in the database
2005-12-29 Don Allingham <don@gramps-project.org> 2005-12-29 Don Allingham <don@gramps-project.org>
* src/GrampsLocale.py: handle platform specific locale issues * src/GrampsLocale.py: handle platform specific locale issues

View File

@ -567,7 +567,10 @@ class GrampsBSDDB(GrampsDbBase):
# handle deletion of old references # handle deletion of old references
if len(no_longer_required_references) > 0: if len(no_longer_required_references) > 0:
for (ref_class_name,ref_handle) in no_longer_required_references: for (ref_class_name,ref_handle) in no_longer_required_references:
self.reference_map.delete(str((handle,ref_handle),)) try:
self.reference_map.delete(str((handle,ref_handle),))
except: # ignore missing old reference
pass
def reindex_reference_map(self): def reindex_reference_map(self):
"""Reindex all primary records in the database. This will be a """Reindex all primary records in the database. This will be a

View File

@ -83,25 +83,43 @@ class TestcaseGenerator(Tool.Tool):
self.generated_sources = [] self.generated_sources = []
self.generated_media = [] self.generated_media = []
self.generated_places = [] self.generated_places = []
self.generated_events = []
self.text_serial_number = 1 self.text_serial_number = 1
self.random_marrtype_list = ( self.random_marrtype_list = (
(RelLib.Family.UNMARRIED,''), (RelLib.Family.UNMARRIED,''),
(RelLib.Family.CIVIL_UNION,''), (RelLib.Family.CIVIL_UNION,''),
(RelLib.Family.UNKNOWN,''), (RelLib.Family.UNKNOWN,''),
(RelLib.Family.OTHER,'') (RelLib.Family.CUSTOM,'Custom 123')
) )
self.random_childrel_list = ( self.random_childrel_list = (
(RelLib.Person.CHILD_REL_NONE,''), (RelLib.Person.CHILD_NONE,''),
(RelLib.Person.CHILD_REL_ADOPT,''), (RelLib.Person.CHILD_ADOPTED,''),
(RelLib.Person.CHILD_REL_STEP,''), (RelLib.Person.CHILD_STEPCHILD,''),
(RelLib.Person.CHILD_REL_SPONS,''), (RelLib.Person.CHILD_SPONSORED,''),
(RelLib.Person.CHILD_REL_FOST,''), (RelLib.Person.CHILD_FOSTER,''),
(RelLib.Person.CHILD_REL_UNKWN,''), (RelLib.Person.CHILD_UNKNOWN,''),
(RelLib.Person.CHILD_REL_OTHER,''), (RelLib.Person.CHILD_CUSTOM,'Custom 123'),
)
self.random_confidence_list = (
RelLib.SourceRef.CONF_VERY_LOW,
RelLib.SourceRef.CONF_LOW,
RelLib.SourceRef.CONF_NORMAL,
RelLib.SourceRef.CONF_HIGH,
RelLib.SourceRef.CONF_VERY_HIGH
)
self.random_event_role_list = (
(RelLib.EventRef.UNKNOWN,''),
(RelLib.EventRef.CUSTOM,'Custom 123'),
(RelLib.EventRef.PRIMARY,''),
(RelLib.EventRef.CLERGY,''),
(RelLib.EventRef.CELEBRANT,''),
(RelLib.EventRef.AIDE,''),
(RelLib.EventRef.BRIDE,''),
(RelLib.EventRef.GROOM,''),
(RelLib.EventRef.WITNESS,''),
(RelLib.EventRef.FAMILY,'')
) )
self.random_confidence_list = (RelLib.CONF_VERY_LOW, RelLib.CONF_LOW,
RelLib.CONF_NORMAL, RelLib.CONF_HIGH, RelLib.CONF_VERY_HIGH)
# If an active persons exists the generated tree is connected to that person # If an active persons exists the generated tree is connected to that person
if person: if person:
@ -530,24 +548,6 @@ class TestcaseGenerator(Tool.Tool):
self.db.commit_person(child,self.trans) self.db.commit_person(child,self.trans)
self.commit_transaction() # COMMIT TRANSACTION STEP self.commit_transaction() # COMMIT TRANSACTION STEP
# Creates a person with an event having a witness reference to a nonexisting person
person_h = self.generate_person(None,"Broken10",None)
witness = RelLib.Witness()
witness.set_type(RelLib.Event.ID)
witness.set_value("InvalidHandle3")
witness.set_comment("Pointing to non existing person");
event = RelLib.Event()
event.add_witness(witness)
event.set_name("Christening")
event_h = self.db.add_event(event,self.trans)
event_ref = RelLib.EventRef()
event_ref.set_reference_handle(event_h)
event_ref.set_role((RelLib.EventRef.PRIMARY,''))
person = self.db.get_person_from_handle(person_h)
person.add_event_ref(event_ref)
self.db.commit_person(person,self.trans)
self.commit_transaction() # COMMIT TRANSACTION STEP
# Creates a person having a non existing birth event handle set # Creates a person having a non existing birth event handle set
person_h = self.generate_person(None,"Broken11",None) person_h = self.generate_person(None,"Broken11",None)
person = self.db.get_person_from_handle(person_h) person = self.db.get_person_from_handle(person_h)
@ -708,6 +708,7 @@ class TestcaseGenerator(Tool.Tool):
bevent.set_type((RelLib.Event.BIRTH, "Birth")) bevent.set_type((RelLib.Event.BIRTH, "Birth"))
bevent.set_date_object(dateval) bevent.set_date_object(dateval)
bevent_h = self.db.add_event(bevent,self.trans) bevent_h = self.db.add_event(bevent,self.trans)
self.generated_events.append(bevent_h)
bevent_ref = RelLib.EventRef() bevent_ref = RelLib.EventRef()
bevent_ref.set_reference_handle(bevent_h) bevent_ref.set_reference_handle(bevent_h)
bevent_ref.set_role((RelLib.EventRef.PRIMARY,'')) bevent_ref.set_role((RelLib.EventRef.PRIMARY,''))
@ -736,6 +737,7 @@ class TestcaseGenerator(Tool.Tool):
devent.set_type((RelLib.Event.DEATH,"Death")) devent.set_type((RelLib.Event.DEATH,"Death"))
devent.set_date_object(ndate) devent.set_date_object(ndate)
devent_h = self.db.add_event(devent,self.trans) devent_h = self.db.add_event(devent,self.trans)
self.generated_events.append(devent_h)
devent_ref = RelLib.EventRef() devent_ref = RelLib.EventRef()
devent_ref.set_reference_handle(devent_h) devent_ref.set_reference_handle(devent_h)
devent_ref.set_role((RelLib.EventRef.PRIMARY,'')) devent_ref.set_role((RelLib.EventRef.PRIMARY,''))
@ -834,7 +836,14 @@ class TestcaseGenerator(Tool.Tool):
if randint(0,1) == 1: if randint(0,1) == 1:
(bur_year, eref) = self.rand_event( (bur_year, eref) = self.rand_event(
choice( ("Burial", "Cremation")), dy, dy+2) choice( ("Burial", "Cremation")), dy, dy+2)
np.add_event_handle(e.get_handle()) np.add_event_handle(eref)
# some shared events
if randint(0,5) == 1:
e_h = choice(self.generated_events)
ref = RelLib.EventRef()
ref.set_reference_handle(e_h)
ref.set_role( choice(self.random_event_role_list))
#LDS #LDS
if randint(0,1) == 1: if randint(0,1) == 1:
@ -914,10 +923,10 @@ class TestcaseGenerator(Tool.Tool):
fam.add_child_handle(child_h) fam.add_child_handle(child_h)
self.db.commit_family(fam,self.trans) self.db.commit_family(fam,self.trans)
child = self.db.get_person_from_handle(child_h) child = self.db.get_person_from_handle(child_h)
rel1 = (RelLib.Person.CHILD_REL_BIRTH,'') rel1 = (RelLib.Person.CHILD_BIRTH,'')
if randint(0,2) == 1: if randint(0,2) == 1:
rel1 = choice( self.random_childrel_list) rel1 = choice( self.random_childrel_list)
rel2 = (RelLib.Person.CHILD_REL_BIRTH,'') rel2 = (RelLib.Person.CHILD_BIRTH,'')
if randint(0,2) == 1: if randint(0,2) == 1:
rel2 = choice( self.random_childrel_list) rel2 = choice( self.random_childrel_list)
child.add_parent_family_handle(fam_h, rel1, rel2) child.add_parent_family_handle(fam_h, rel1, rel2)
@ -966,10 +975,10 @@ class TestcaseGenerator(Tool.Tool):
person2 = self.db.get_person_from_handle(person2_h) person2 = self.db.get_person_from_handle(person2_h)
person2.add_family_handle(fam_h) person2.add_family_handle(fam_h)
self.db.commit_person(person2,self.trans) self.db.commit_person(person2,self.trans)
rel1 = (RelLib.Person.CHILD_REL_BIRTH,'') rel1 = (RelLib.Person.CHILD_BIRTH,'')
if randint(0,2) == 1: if randint(0,2) == 1:
rel1 = choice( self.random_childrel_list) rel1 = choice( self.random_childrel_list)
rel2 = (RelLib.Person.CHILD_REL_BIRTH,'') rel2 = (RelLib.Person.CHILD_BIRTH,'')
if randint(0,2) == 1: if randint(0,2) == 1:
rel2 = choice( self.random_childrel_list) rel2 = choice( self.random_childrel_list)
child.add_parent_family_handle(fam_h, rel1, rel2) child.add_parent_family_handle(fam_h, rel1, rel2)
@ -983,7 +992,7 @@ class TestcaseGenerator(Tool.Tool):
object.add_media_reference( self.rand_mediaref()) object.add_media_reference( self.rand_mediaref())
while randint(0,1) == 1: while randint(0,1) == 1:
(year,e) = self.rand_event() (year,e) = self.rand_event()
object.add_event_handle( e.get_handle()) object.add_event_ref( e)
while randint(0,1) == 1: while randint(0,1) == 1:
object.add_attribute( self.rand_attribute()) object.add_attribute( self.rand_attribute())
try: try:
@ -1072,19 +1081,8 @@ class TestcaseGenerator(Tool.Tool):
e.set_place_handle( self.rand_place()) e.set_place_handle( self.rand_place())
(year, d) = self.rand_date( start, end) (year, d) = self.rand_date( start, end)
e.set_date_object( d) e.set_date_object( d)
if randint(0,5) == 1:
w = RelLib.Witness()
w.set_privacy( randint(0,5) == 1)
w.set_comment( self.rand_text(self.NOTE))
if randint(0,1) == 1:
w.set_type( RelLib.Event.ID)
wph = self.generate_person( alive_in_year=year)
w.set_value( wph)
else:
w.set_type( RelLib.Event.NAME)
w.set_value( "%s %s" % self.rand_name())
e.add_witness(w)
event_h = self.db.add_event(e, self.trans) event_h = self.db.add_event(e, self.trans)
self.generated_events.append(event_h)
event_ref = RelLib.EventRef() event_ref = RelLib.EventRef()
event_ref.set_reference_handle(event_h) event_ref.set_reference_handle(event_h)
event_ref.set_role((RelLib.EventRef.PRIMARY,'')) event_ref.set_role((RelLib.EventRef.PRIMARY,''))
@ -1441,4 +1439,3 @@ if __debug__:
"and families that have broken links in the database " "and families that have broken links in the database "
"or data that is in conflict to a relation.") "or data that is in conflict to a relation.")
) )