def test_filter_by_expr1(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM NOT (type = 'transaction' AND (year(date) = 2012 OR year(date) = 2013)); """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(""" 2010-01-01 open Assets:Bank:Checking 2010-01-01 open Assets:Bank:Savings 2010-01-01 open Expenses:Restaurant 2010-01-01 open Assets:ForeignBank:Checking 2010-01-01 * "Dinner with Cero" Assets:Bank:Checking 100.00 USD Expenses:Restaurant -100.00 USD 2011-01-01 * "Dinner with Uno" Assets:Bank:Checking 101.00 USD Expenses:Restaurant -101.00 USD 2014-04-04 * "Dinner with Quatro" Assets:Bank:Checking 104.00 USD Expenses:Restaurant -104.00 USD """, filtered_entries)
def test_filter_open_dated(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM OPEN ON 2013-01-01; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(""" 2010-01-01 open Assets:Bank:Checking 2010-01-01 open Assets:Bank:Savings 2010-01-01 open Expenses:Restaurant 2010-01-01 open Assets:ForeignBank:Checking 2012-12-31 'S "Opening balance for 'Assets:Bank:Checking' (Summarization)" Assets:Bank:Checking 303.00 USD Equity:Opening-Balances -303.00 USD 2012-12-31 'S "Opening balance for 'Equity:Earnings:Previous' (Summarization)" Equity:Earnings:Previous -303.00 USD Equity:Opening-Balances 303.00 USD 2013-03-03 * "Dinner with Tres" Assets:Bank:Checking 103.00 USD Expenses:Restaurant -103.00 USD 2013-10-10 * "International Transfer" Assets:Bank:Checking -50.00 USD ; -50.00 USD Assets:ForeignBank:Checking -60.00 CAD @ 1.20 USD ; -72.00 USD 2014-04-04 * "Dinner with Quatro" Assets:Bank:Checking 104.00 USD Expenses:Restaurant -104.00 USD """, filtered_entries)
def test_filter_by_expr2(self): filtered_entries = qx.filter_entries( self.compile(""" SELECT date, type FROM date < 2012-06-01; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries( """ 2010-01-01 open Assets:Bank:Checking 2010-01-01 open Assets:Bank:Savings 2010-01-01 open Expenses:Restaurant 2010-01-01 open Assets:ForeignBank:Checking 2010-01-01 * "Dinner with Cero" Assets:Bank:Checking 100.00 USD Expenses:Restaurant -100.00 USD 2011-01-01 * "Dinner with Uno" Assets:Bank:Checking 101.00 USD Expenses:Restaurant -101.00 USD 2012-02-02 * "Dinner with Dos" Assets:Bank:Checking 102.00 USD Expenses:Restaurant -102.00 USD """, filtered_entries)
def test_filter_empty_from(self): # Check that no filter outputs the very same thing. filtered_entries = qx.filter_entries( self.compile(""" SELECT * ; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(self.entries, filtered_entries)
def test_filter_by_year(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM year(date) = 2012; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(""" 2012-02-02 * "Dinner with Dos" Assets:Bank:Checking 102.00 USD Expenses:Restaurant -102.00 USD """, filtered_entries)
def test_filter_clear(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM CLEAR; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(self.INPUT + textwrap.dedent(""" 2014-04-04 'T "Transfer balance for 'Expenses:Restaurant' (Transfer balance)" Expenses:Restaurant 510.00 USD Equity:Earnings:Current -510.00 USD """), filtered_entries)
def test_filter_close_undated(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM CLOSE; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(self.INPUT + textwrap.dedent(""" 2014-04-04 'C "Conversion for (-50.00 USD, -60.00 CAD)" Equity:Conversions:Current 50.00 USD @ 0 NOTHING Equity:Conversions:Current 60.00 CAD @ 0 NOTHING """), filtered_entries)
def test_filter_close_dated(self): filtered_entries = qx.filter_entries(self.compile(""" SELECT date, type FROM CLOSE ON 2013-06-01; """).c_from, self.entries, self.options_map, self.context) self.assertEqualEntries(self.entries[:-2], filtered_entries)