File diff cc0656dde9b1 → 069939b2d3a5
tests/test_reports_balance.py
Show inline comments
...
 
@@ -179,6 +179,84 @@ def test_eq(kwargs1, kwargs2, expected):
 
    actual = bal1 == bal2
 
    assert actual == expected
 

	
 
@pytest.mark.parametrize('number,currency', {
 
    (50, 'USD'),
 
    (-50, 'USD'),
 
    (50000, 'BRL'),
 
    (-4000, 'BRL'),
 
})
 
def test_add_amount(number, currency):
 
    start_amounts = testutil.balance_map(USD=500)
 
    start_bal = core.Balance(start_amounts)
 
    add_amount = testutil.Amount(number, currency)
 
    actual = start_bal + add_amount
 
    if currency == 'USD':
 
        assert len(actual) == 1
 
        assert actual['USD'] == testutil.Amount(500 + number)
 
    else:
 
        assert len(actual) == 2
 
        assert actual['USD'] == testutil.Amount(500)
 
        assert actual[currency] == add_amount
 
    assert start_bal == start_amounts
 

	
 
@pytest.mark.parametrize('number,currency', {
 
    (50, 'USD'),
 
    (-50, 'USD'),
 
    (50000, 'BRL'),
 
    (-4000, 'BRL'),
 
})
 
def test_iadd_amount(number, currency):
 
    start_amounts = testutil.balance_map(USD=500)
 
    balance = core.MutableBalance(start_amounts)
 
    add_amount = testutil.Amount(number, currency)
 
    balance += add_amount
 
    if currency == 'USD':
 
        assert len(balance) == 1
 
        assert balance['USD'] == testutil.Amount(500 + number)
 
    else:
 
        assert len(balance) == 2
 
        assert balance['USD'] == testutil.Amount(500)
 
        assert balance[currency] == add_amount
 

	
 
@pytest.mark.parametrize('balance_map_kwargs', [
 
    {},
 
    {'USD': 0},
 
    {'EUR': 10},
 
    {'JPY': 20, 'BRL': 30},
 
    {'EUR': -15},
 
    {'JPY': -25, 'BRL': -35},
 
    {'JPY': 40, 'USD': 0, 'EUR': -50},
 
])
 
def test_add_balance(balance_map_kwargs):
 
    start_numbers = {'USD': 500, 'BRL': 40000}
 
    start_bal = core.Balance(testutil.balance_map(**start_numbers))
 
    expect_numbers = start_numbers.copy()
 
    for code, number in balance_map_kwargs.items():
 
        expect_numbers[code] = expect_numbers.get(code, 0) + number
 
    add_bal = core.Balance(testutil.balance_map(**balance_map_kwargs))
 
    actual = start_bal + add_bal
 
    expected = core.Balance(testutil.balance_map(**expect_numbers))
 
    assert actual == expected
 

	
 
@pytest.mark.parametrize('balance_map_kwargs', [
 
    {},
 
    {'USD': 0},
 
    {'EUR': 10},
 
    {'JPY': 20, 'BRL': 30},
 
    {'EUR': -15},
 
    {'JPY': -25, 'BRL': -35},
 
    {'JPY': 40, 'USD': 0, 'EUR': -50},
 
])
 
def test_iadd_balance(balance_map_kwargs):
 
    start_numbers = {'USD': 500, 'BRL': 40000}
 
    balance = core.MutableBalance(testutil.balance_map(**start_numbers))
 
    expect_numbers = start_numbers.copy()
 
    for code, number in balance_map_kwargs.items():
 
        expect_numbers[code] = expect_numbers.get(code, 0) + number
 
    balance += core.Balance(testutil.balance_map(**balance_map_kwargs))
 
    expected = core.Balance(testutil.balance_map(**expect_numbers))
 
    assert balance == expected
 

	
 
@pytest.mark.parametrize('balance_map_kwargs,expected', DEFAULT_STRINGS)
 
def test_str(balance_map_kwargs, expected):
 
    amounts = testutil.balance_map(**balance_map_kwargs)