示例#1
0
    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())
示例#2
0
    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()
        )
示例#3
0
    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