@@ -342,39 +342,53 @@ def test_iadd_balance(mapping):
for code, number in mapping.items():
expect_numbers[code] = expect_numbers.get(code, 0) + number
balance += core.Balance(amounts_from_map(mapping))
expected = core.Balance(amounts_from_map(expect_numbers))
assert balance == expected
def test_copy():
amounts = frozenset(amounts_from_map({'USD': 10, 'EUR': '.001'}))
# Use a ridiculous tolerance to test it doesn't matter.
actual = core.Balance(amounts, 100).copy()
assert frozenset(actual.values()) == amounts
@pytest.mark.parametrize('tolerance', TOLERANCES)
def test_copy(tolerance):
eur = testutil.Amount('.003', 'EUR')
source = core.Balance([eur], tolerance)
new = source.copy()
assert source is not new
assert dict(source) == dict(new)
assert new.tolerance == tolerance
def test_copy_tolerance_arg(tolerance):
source = core.Balance([eur])
new = source.copy(tolerance)
def test_clean_copy(tolerance):
usd = testutil.Amount(10)
eur = testutil.Amount('.002', 'EUR')
actual = core.Balance([usd, eur], tolerance).clean_copy()
if tolerance < eur.number:
expected = {usd, eur}
else:
expected = {usd}
assert frozenset(actual.values()) == expected
assert actual.tolerance == tolerance
def test_clean_copy_arg(tolerance):
actual = core.Balance([usd, eur], 0).clean_copy(tolerance)
@pytest.mark.parametrize('mapping,expected', DEFAULT_STRINGS)
def test_str(mapping, expected):
balance = core.Balance(amounts_from_map(mapping))
assert str(balance) == expected