def __init__(self, entries, payment_dt, pay_period, jobs): self.company = jobs.company for i in range(len(entries) - 1, -1, -1): if entries[i].company != self.company: raise ValueError('Entry with different company: %s and %s' % (repr(entries[i]), self.company)) if not entries[i].can_be_invoiced(): del (entries[i]) self.entries = sorted(entries, key=lambda x: x.dt) self.entry_ids = [] self.job_ids = defaultdict(list) for entry in self.entries: self.entry_ids.append(entry.id) self.job_ids[entry.job].append(entry) self.hours_total = TimeEntry.get_hours_total(self.entries) self.invoiced_dt = None self.payment_dt = payment_dt self.paid_dt = None self.sent = False self.payperiod_start = pay_period[0] self.payperiod_end = pay_period[1] self.jobs = jobs self.id = uuid.uuid1().hex
def testWriteReport(self): self.invoice.send() report_path = io_txt.get_report_path(self.invoice) io_txt.write_report(self.invoice) with open(report_path, 'r') as f: written_txt = f.read() _entries = self.invoice.entries self.assertIn(_entries[0].message, written_txt) self.assertIn(str(TimeEntry.get_hours_total(_entries)), written_txt) del_path(report_path)