def test_invoice_repr(month): user = UserFactory.build() format_month = get_previous_month() if month is None else month assert ( repr(Invoice(user, FAKE_CONFIG, month=month)) == u'<Invoice %s:%s>' % (user.username, format_month.strftime(MONTH_FORMAT)) )
def test_invoice_get_total_amounts_extra_add(monkeypatch): """Tests total amounts' correctness when there is an extra amount to be added to the accrued total. """ extra_add = 5 user = UserFactory.build() config = dict({ 'extra_add': extra_add, }, **FAKE_CONFIG) invoice = Invoice(user, config, add_correction=True) rates = (0.5, 0.5, 0.5) monkeypatch.setattr(invoice, 'get_rates', lambda: rates) amounts = (5, 5, 5, 0) monkeypatch.setattr(invoice, '_get_full_user_amounts', lambda x: amounts) total_amounts = invoice.get_total_amounts() assert total_amounts['subtotal'] == 3 * (amounts[0] * rates[0]) assert total_amounts['balance'] is None assert total_amounts['total'] == 3 * (amounts[0] * rates[0]) + extra_add assert total_amounts['extra_amount'] == extra_add
def test_invoice_get_total_amounts_below_minimal_payment(monkeypatch): """Tests total amounts' correctness when the accrued total is below the minimal payment bar. """ user = UserFactory.build() config = dict({ 'minimal_payment': 10, 'extra_add': 5, }, **FAKE_CONFIG) invoice = Invoice(user, config, add_correction=True) rates = (0.5, 0.5, 0.5) monkeypatch.setattr(invoice, 'get_rates', lambda: rates) amounts = (5, 5, 5, 0) monkeypatch.setattr(invoice, '_get_full_user_amounts', lambda x: amounts) total_amounts = invoice.get_total_amounts() assert total_amounts['subtotal'] == 3 * (amounts[0] * rates[0]) assert total_amounts['balance'] == 3 * (amounts[0] * rates[0]) assert total_amounts['total'] == 0 assert total_amounts['extra_amount'] == 0