import pytest import copy import finoex def get_item_a(sub_count=0): i = finoex.Item(name='test', price_brutto=finoex.Sum(2.0, 'EUR')) for c in range(sub_count): i.sub_items.append(finoex.Item( name='sub', price_brutto=finoex.Sum(1.0, 'EUR'), )) return i @pytest.mark.parametrize(('item', 'expected_total'), [ [get_item_a(sub_count=0), finoex.Sum(2.0, 'EUR')], [get_item_a(sub_count=1), finoex.Sum(3.0, 'EUR')], [get_item_a(sub_count=2), finoex.Sum(4.0, 'EUR')], ]) def test_total_price_brutto(item, expected_total): assert expected_total == item.total_price_brutto