def test_delete_record(): for ext in ('.mst', '.xrf'): fname = join("..", "sample", 'one%s' % ext) if exists(fname): remove(fname) mf = MasterFile(join("..", "sample", "one.mst")) rec = MasterRecord() rec["300"] = "XXXX" rec.save(mf) print rec del mf mf = MasterFile(join("..", "sample", "one.mst")) l1 = len(mf) mf.delete(1) mf.commit() del mf mf = MasterFile(join("..", "sample", "one.mst")) l2 = len(mf) del mf print "l1=" + str(l1) print "l2=" + str(l2) assert l2 == l1 - 1, "wrong number of active records after deleting record"
def test_copy(): """Copy the sample database to a new file""" clean_start() input_mf = MasterFile(join("..", "sample", "cds.mst")) output_mf = MasterFile(testmst) for rec in input_mf: rec.save(output_mf) output_mf.commit() assert len(input_mf) == len(output_mf)
def test_write_multiple_records(): """Write multiple records in a newly created database.""" clean_start() size = 381 mf = MasterFile(testmst) for i in range(size): rec = MasterRecord() rec.update(test_data) rec.save(mf) mf.commit() assert len(mf) == size assert mf[90].v50.data == 'Incl. bibl.' del mf
def test_undelete(): """Create a record and undelete it""" clean_start() mf = MasterFile(testmst) r = MasterRecord() r.update(test_data) r.save(mf) mf.delete(1) mf.commit() r = mf[1] assert r.status == LOGICALLY_DELETED assert mf.xrf[1].status == 'logically deleted' assert len(mf) == 0 mf.undelete(1) r = mf[1] assert r.status == ACTIVE assert mf.xrf[1].status == 'active' assert len(mf) == 1