def test_next_scheduled_transaction_no_next(self): no_next = ''';; scheduler ; enter 45 days''' with FileTester.temp_input(no_next) as tempfilename: schedulefile = ScheduleFile(tempfilename) self.assertEqual('', schedulefile.next_scheduled_date())
def test_next_scheduled_transaction(self): with FileTester.temp_input(self.scheduledata) as tempfilename: schedulefile = ScheduleFile(tempfilename) self.assertEqual( '2007/07/07', schedulefile.next_scheduled_date() )
def process_file(self): if self.args.next_scheduled_date: if not self.args.schedule_file: print('error: -S/--schedule-file is required') return 8 schedule_file = ScheduleFile(self.args.schedule_file) print(schedule_file.next_scheduled_date()) return 0 if not self.args.file: print('error: -f/--file is required') return 16 try: ledgerfile = LedgerFile(self.args.file, self.args.reconcile) except LdgReconcilerMoreThanOneMatchingAccount as e: print('Reconcile error. More than one matching account:') for account in e.message: print(' ' + account) return 2 except LdgReconcilerMultipleStatuses as e: print(str(e)) return 4 if self.args.schedule_file: schedule_file = ScheduleFile(self.args.schedule_file) scheduler = Scheduler(ledgerfile, schedule_file) scheduler.run() schedule_file.write_file() ledgerfile.write_file() if self.args.sort: ledgerfile.sort() ledgerfile.write_file() if self.args.reconcile: if ledgerfile.rec_account_matches: # pragma: no cover reconciler = Reconciler(ledgerfile) reconciler.cmdloop() else: print('No matching account found for "{acct}"'.format( acct=self.args.reconcile )) return 0