def fake_altdaten(self, csv_file, fields): id=Altdaten().getNewId() jahr=str(self.choose_date(Date(1999), Date(2006)).year) altd = Altdaten() altd.init( id=id, vorname=choice(self.vornamen), name=choice(self.namen), geburtsdatum=str(self.choose_date(Date(1989,3,1), today().add_month(-24))), geschlecht=choice(('m', 'w')), jahr=jahr, fallnummer=("%s%03d" % (jahr, choice(range(1,1000)))), mitarbeiter="Mitarb%s" % id, strasse=choice(self.strassen), hausnummer=str(randrange(1, 200)), plz=str(randrange(10000, 99999)), ort=choice(self.orte), telefon1=str(randrange(10001, 99999999)), telefon2=str(randrange(10001, 99999999)), memo=("Memo für Altdaten id=%s. " "äöüÄÖÜß Hier kann man noch eine Menge über den alten Fall reinschreiben. " "Auch längere Texte. " % id)[:randrange(25,150)] ) csv = ';'.join([('"%%(%s)s"' % a) % altd for a in fields]) csv_file.write(csv + '\r\n') altd.insert() log("Altdaten %s" % id) return altd
def read_data(self, f): #print 'FILE: ', f, type(f) data = [] feldnamen = self.get_altdaten_felder()[1:] size = len(feldnamen) reader = csv.reader(f.readlines(), delimiter=';', doublequote=True, quotechar='"', ) try: erste_zeile = reader.next() except StopIteration: self.csv_lese_fehler("Keine Daten gefunden") #print 'ERSTE_ZEILE: ', erste_zeile if size != len(erste_zeile): self.csv_lese_fehler("Anzahl der Feldnamen in der ersten Zeile stimmt nicht", 1, erste_zeile) for ist, soll in zip(erste_zeile, feldnamen): if ist != soll: self.csv_lese_fehler("Erste Zeile mit den Feldnamen stimmt nicht " "mit Feldnamen überein", 1, erste_zeile) for i, row in enumerate(reader): #print 'ZEILE: ', row if size != len(row): self.csv_lese_fehler("Anzahl der Felder in Zeile %(znr)s stimmt nicht", i+2, row) dic = dict(zip(erste_zeile, row)) dic = self.validate_normalize_altdaten(dic, i+2, row) dic['id'] = i+2 altd = Altdaten() altd.init(**dic) data.append(altd) return data