Esempio n. 1
0
def test_budgets(load_doc):
    """
    2016-01-01 custom "budget" Expenses:Groceries "weekly" 100.00 CNY
    2016-06-01 custom "budget" Expenses:Groceries "weekly"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries "asdfasdf"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries 10.00 EUR
    """
    entries, _, _ = load_doc
    budgets, errors = parse_budgets(entries)

    assert len(errors) == 2

    assert (
        calculate_budget(
            budgets, "Expenses", date(2016, 6, 1), date(2016, 6, 8)
        )
        == {}
    )

    budgets = calculate_budget(
        budgets, "Expenses:Groceries", date(2016, 6, 1), date(2016, 6, 8)
    )

    assert budgets["CNY"] == D("100")
    assert budgets["EUR"] == D("10")
Esempio n. 2
0
def test_budgets_doc_quarterly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "quarterly" 123456.7 EUR"""

    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 2, 1),
                             date(2016, 2, 2))["EUR"] == D("123456.7") / 91)
    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 8, 15),
                             date(2016, 8, 16))["EUR"] == D("123456.7") / 92)
Esempio n. 3
0
def test_budgets_weekly(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "weekly" 21 EUR"""

    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 5, 1),
                             date(2016, 5, 2))["EUR"] == D("21") / 7)
    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 9, 1),
                             date(2016, 9, 2))["EUR"] == D("21") / 7)
Esempio n. 4
0
def test_budgets_doc_quarterly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "quarterly" 123456.7 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 2, 1),
                            date(2016, 2, 2))['EUR'] == D('123456.7') / 91
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 8, 15),
                            date(2016, 8, 16))['EUR'] == D('123456.7') / 92
Esempio n. 5
0
def test_budgets_weekly(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "weekly" 21 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 2))['EUR'] == D('21') / 7
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 9, 1),
                            date(2016, 9, 2))['EUR'] == D('21') / 7
Esempio n. 6
0
def test_budgets_doc_quarterly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "quarterly" 123456.7 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 2, 1),
                            date(2016, 2, 2))['EUR'] == D('123456.7') / 91
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 8, 15),
                            date(2016, 8, 16))['EUR'] == D('123456.7') / 92
Esempio n. 7
0
def test_budgets_weekly(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "weekly" 21 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 2))['EUR'] == D('21') / 7
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 9, 1),
                            date(2016, 9, 2))['EUR'] == D('21') / 7
Esempio n. 8
0
def test_budgets_monthly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "monthly" 100 EUR"""

    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 1, 1),
                             date(2016, 1, 2))["EUR"] == D("100") / 31)
    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2016, 2, 1),
                             date(2016, 2, 2))["EUR"] == D("100") / 29)
    assert (calculate_budget(budgets_doc, "Expenses:Books", date(2018, 3, 31),
                             date(2018, 4, 1))["EUR"] == D("100") / 31)
Esempio n. 9
0
def test_budgets_monthly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "monthly" 100 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 1, 1),
                            date(2016, 1, 2))['EUR'] == D('100') / 31
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 2, 1),
                            date(2016, 2, 2))['EUR'] == D('100') / 29
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2018, 3, 31),
                            date(2018, 4, 1))['EUR'] == D('100') / 31
Esempio n. 10
0
def test_budgets_monthly(budgets_doc):
    """
    2014-05-01 custom "budget" Expenses:Books "monthly" 100 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 1, 1),
                            date(2016, 1, 2))['EUR'] == D('100') / 31
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 2, 1),
                            date(2016, 2, 2))['EUR'] == D('100') / 29
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2018, 3, 31),
                            date(2018, 4, 1))['EUR'] == D('100') / 31
Esempio n. 11
0
def test_budgets_daily(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "daily" 2.5 EUR"""

    assert 'EUR' not in calculate_budget(budgets_doc, 'Expenses:Books',
                                         date(2010, 2, 1), date(2010, 2, 2))
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 2))['EUR'] == D('2.5')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 3))['EUR'] == D('5.0')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 9, 2),
                            date(2016, 9, 3))['EUR'] == D('2.5')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2018, 12, 31),
                            date(2019, 1, 1))['EUR'] == D('2.5')
Esempio n. 12
0
def test_budgets_daily(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "daily" 2.5 EUR"""

    assert "EUR" not in calculate_budget(budgets_doc, "Expenses:Books",
                                         date(2010, 2, 1), date(2010, 2, 2))
    assert calculate_budget(budgets_doc, "Expenses:Books", date(2016, 5, 1),
                            date(2016, 5, 2))["EUR"] == D("2.5")
    assert calculate_budget(budgets_doc, "Expenses:Books", date(2016, 5, 1),
                            date(2016, 5, 3))["EUR"] == D("5.0")
    assert calculate_budget(budgets_doc, "Expenses:Books", date(2016, 9, 2),
                            date(2016, 9, 3))["EUR"] == D("2.5")
    assert calculate_budget(budgets_doc, "Expenses:Books", date(2018, 12, 31),
                            date(2019, 1, 1))["EUR"] == D("2.5")
Esempio n. 13
0
def test_budgets_daily(budgets_doc):
    """
    2016-05-01 custom "budget" Expenses:Books "daily" 2.5 EUR"""

    assert 'EUR' not in calculate_budget(budgets_doc, 'Expenses:Books',
                                         date(2010, 2, 1), date(2010, 2, 2))
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 2))['EUR'] == D('2.5')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 5, 1),
                            date(2016, 5, 3))['EUR'] == D('5.0')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2016, 9, 2),
                            date(2016, 9, 3))['EUR'] == D('2.5')
    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2018, 12, 31),
                            date(2019, 1, 1))['EUR'] == D('2.5')
Esempio n. 14
0
def test_budgets_doc_yearly(budgets_doc):
    """
    2010-01-01 custom "budget" Expenses:Books "yearly" 99999.87 EUR"""
    BUDGET = D("99999.87")

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2011, 2, 1),
                            date(2011, 2, 2))['EUR'] == BUDGET / 365
Esempio n. 15
0
def test_budgets_doc_yearly(budgets_doc: BudgetDict) -> None:
    """
    2010-01-01 custom "budget" Expenses:Books "yearly" 99999.87 EUR"""

    assert (
        calculate_budget(
            budgets_doc, "Expenses:Books", date(2011, 2, 1), date(2011, 2, 2)
        )["EUR"]
        == D("99999.87") / 365
    )
Esempio n. 16
0
def test_budgets(load_doc):
    """
    2016-01-01 custom "budget" Expenses:Groceries "weekly" 100.00 CNY
    2016-06-01 custom "budget" Expenses:Groceries "weekly"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries 10.00 EUR
    """
    entries, _, _ = load_doc
    budgets, errors = parse_budgets(entries)

    assert len(errors) == 1

    assert calculate_budget(budgets, 'Expenses', date(2016, 6, 1),
                            date(2016, 6, 8)) == {}

    budgets = calculate_budget(budgets, 'Expenses:Groceries', date(2016, 6, 1),
                               date(2016, 6, 8))

    assert budgets['CNY'] == D('100')
    assert budgets['EUR'] == D('10')
Esempio n. 17
0
def test_budgets(load_doc):
    """
    2016-01-01 custom "budget" Expenses:Groceries "weekly" 100.00 CNY
    2016-06-01 custom "budget" Expenses:Groceries "weekly"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries "asdfasdf"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries 10.00 EUR
    """
    entries, _, _ = load_doc
    budgets, errors = parse_budgets(entries)

    assert len(errors) == 2

    assert calculate_budget(budgets, 'Expenses', date(2016, 6, 1),
                            date(2016, 6, 8)) == {}

    budgets = calculate_budget(budgets, 'Expenses:Groceries', date(2016, 6, 1),
                               date(2016, 6, 8))

    assert budgets['CNY'] == D('100')
    assert budgets['EUR'] == D('10')
Esempio n. 18
0
def test_budgets(load_doc: LoaderResult) -> None:
    """
    2016-01-01 custom "budget" Expenses:Groceries "weekly" 100.00 CNY
    2016-06-01 custom "budget" Expenses:Groceries "weekly"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries "asdfasdf"  10.00 EUR
    2016-06-01 custom "budget" Expenses:Groceries 10.00 EUR
    """
    entries, _, _ = load_doc
    budgets, errors = parse_budgets(entries)  # type: ignore

    assert len(errors) == 2

    empty = calculate_budget(
        budgets, "Expenses", date(2016, 6, 1), date(2016, 6, 8)
    )
    assert empty == {}

    budgets_ = calculate_budget(
        budgets, "Expenses:Groceries", date(2016, 6, 1), date(2016, 6, 8)
    )

    assert budgets_["CNY"] == D("100")
    assert budgets_["EUR"] == D("10")
Esempio n. 19
0
def test_budgets_doc_yearly(budgets_doc):
    """
    2010-01-01 custom "budget" Expenses:Books "yearly" 99999.87 EUR"""

    assert calculate_budget(budgets_doc, 'Expenses:Books', date(2011, 2, 1),
                            date(2011, 2, 2))['EUR'] == D("99999.87") / 365