def test_no_cleared_date_when_cleared_date_not_supplied(self): cases = [ ("2014-01-01 x", (datetime.date(2014, 1, 1), None), ""), ("2014-01-01 * x", (datetime.date(2014, 1, 1), datetime.date(2014, 1, 1)), "*"), ("2014-01-01=2015-01-01 ! x", (datetime.date(2014, 1, 1), datetime.date(2015, 1, 1)), "!"), ] accountamounts = [("assets", "56 CHF"), ("expenses", "")] for expected_line, (date, cleared), statechar in cases: res = m.generate_record("x", date, cleared, statechar, accountamounts)[1] self.assertEqual(res, expected_line)
def test_empty_record_auto_goes_last(self): accountamounts = [("expenses", ""), ("assets:cash", "56 CHF")] res = m.generate_record("x", datetime.date(2014, 1, 1), None, "", accountamounts) self.assertListEqual( res, """ 2014-01-01 x assets:cash 56 CHF expenses """.splitlines())
def validate(self, grab_focus=False): """Raises ValidationError if the transaction is not valid.""" title, date, auxdate, statechar, lines = ( self.get_data_for_transaction_record() ) if not title: if grab_focus: self.payee.grab_focus() raise h.TransactionInputValidationError( "Transaction title cannot be empty" ) if len(lines) < 2: if grab_focus: self.lines_grab_focus() raise h.TransactionInputValidationError( "Enter at least two transaction entries" ) try: h.generate_record(title, date, auxdate, statechar, lines, validate=True) except h.LedgerParseError as e: raise h.TransactionInputValidationError(str(e))
def test_no_spurious_whitespace(self): title = "x" date = datetime.date(2014, 1, 1) cleared_date = None accountamounts = [ ("assets", "56 CHF"), ("expenses", ""), ] res = m.generate_record(title, date, cleared_date, "", accountamounts) self.assertListEqual( res, """ 2014-01-01 x assets 56 CHF expenses """.splitlines())
def generate_record(self, *args): lines = ledgerhelpers.generate_record(*args) self.textview.get_buffer().set_text("\n".join(lines))
def generate_record(self, *args): from ledgerhelpers import generate_record return generate_record(*args)