def test_mark_and_unmark(self): with FileTester.temp_input(testdata) as tempfilename: recon = Reconciler(LedgerFile(tempfilename, 'cash')) self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-32.12, recon.total_pending) recon.do_mark('1') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-52.12, recon.total_pending) recon.do_unmark('1 2') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-30, recon.total_pending) recon.do_mark('1 2') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-52.12, recon.total_pending) recon.do_unmark('2') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-50, recon.total_pending) recon.do_mark('1 2 blurg') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-52.12, recon.total_pending) recon.do_unmark('blarg 2') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-50, recon.total_pending) recon.do_unmark('1 sdjfkljsdfkljsdl 2') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-30, recon.total_pending) recon.default('1') self.verify_equal_floats(-15, recon.total_cleared) self.verify_equal_floats(-50, recon.total_pending) # entry with account on multiple lines with FileTester.temp_input(testdata) as tempfilename: recon = Reconciler(LedgerFile(tempfilename, 'credit')) self.verify_equal_floats(0, recon.total_cleared) self.verify_equal_floats(0, recon.total_pending) recon.do_mark('1') self.verify_equal_floats(0, recon.total_cleared) self.verify_equal_floats(-33, recon.total_pending) recon.do_unmark('1') self.verify_equal_floats(0, recon.total_cleared) self.verify_equal_floats(0, recon.total_pending)