def testRunEnterDaysLessThanOne(self): schedulefiledata = FileTester.read_file( FileTester.test_enter_lessthan1 ) tempschedulefile = FileTester.write_to_temp_file( FileTester.test_enter_lessthan1, schedulefiledata ) schedulefile = ScheduleFile(tempschedulefile) templedgerfile = FileTester.create_temp_file('') ledgerfile = LedgerFile(templedgerfile) scheduler = Scheduler(ledgerfile, schedulefile) scheduler.run() ledgerfile.write_file() schedulefile.write_file() schedulefile_actual = FileTester.read_file(tempschedulefile) schedulefile_expected = FileTester.read_file( FileTester.test_enter_lessthan1 ) os.remove(templedgerfile) os.remove(tempschedulefile) self.assertEqual( schedulefile_expected, schedulefile_actual )
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
def run_it(self, before_date, after_date, schedule, enter_days=7): schedulefiledata = self.get_schedule_file( util.get_date_string(before_date), schedule, enter_days ) tempschedulefile = FileTester.write_to_temp_file( FileTester.testdir + 'run_it_schedule_file', schedulefiledata ) schedulefile = ScheduleFile(tempschedulefile) templedgerfile = FileTester.write_to_temp_file( FileTester.testdir + 'run_it_ledger_file', '' ) ledgerfile = LedgerFile(templedgerfile) scheduler = Scheduler(ledgerfile, schedulefile) scheduler.run() ledgerfile.write_file() schedulefile.write_file() schedulefile_actual = FileTester.read_file(tempschedulefile) schedulefile_expected = self.get_schedule_file( util.get_date_string(after_date), schedule, enter_days ) os.remove(templedgerfile) os.remove(tempschedulefile) self.assertEqual(schedulefile_expected, schedulefile_actual)