Exemple #1
0
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))
    )
Exemple #2
0
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
Exemple #3
0
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