|
@@ -5,10 +5,40 @@ from coin.members.tests import MemberTestsUtils
|
|
from coin.members.models import Member, LdapUser
|
|
from coin.members.models import Member, LdapUser
|
|
from coin.billing.models import Invoice
|
|
from coin.billing.models import Invoice
|
|
from coin.offers.models import Offer, Service, OfferSubscription
|
|
from coin.offers.models import Offer, Service, OfferSubscription
|
|
-from coin.billing.create_subscriptions_invoices import create_invoice_for_a_period
|
|
+from coin.billing.create_subscriptions_invoices import create_member_invoice_for_a_period
|
|
|
|
|
|
class BillingInvoiceCreationTests(TestCase):
|
|
class BillingInvoiceCreationTests(TestCase):
|
|
|
|
|
|
|
|
+ def test_first_subscription_invoice_has_initial_fees(self):
|
|
|
|
+ """
|
|
|
|
+ Test que la première facture générée pour un abonnement possède les
|
|
|
|
+ frais de mise en servic
|
|
|
|
+ """
|
|
|
|
+
|
|
|
|
+ service = Service(name='ServiceTest')
|
|
|
|
+ service.save()
|
|
|
|
+ offer = Offer(name='Offre', billing_period=3, period_fees=30,
|
|
|
|
+ initial_fees=50, service=service)
|
|
|
|
+ offer.save()
|
|
|
|
+
|
|
|
|
+ ldap_cn = MemberTestsUtils.get_random_ldap_cn()
|
|
|
|
+ member = Member(first_name = 'Balthazar', last_name = 'Picsou',
|
|
|
|
+ ldap_cn = ldap_cn)
|
|
|
|
+ member.save()
|
|
|
|
+
|
|
|
|
+ subscription = OfferSubscription(
|
|
|
|
+ subscription_date=datetime.date(2014,1,1),
|
|
|
|
+ member=member,
|
|
|
|
+ offer=offer)
|
|
|
|
+ subscription.save()
|
|
|
|
+
|
|
|
|
+ invoice = create_member_invoice_for_a_period(member, datetime.date(2014,1,1))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ self.assertEqual(invoice.details.order_by('-amount').first().amount, 50)
|
|
|
|
+
|
|
def test_subscription_cant_be_charged_twice(self):
|
|
def test_subscription_cant_be_charged_twice(self):
|
|
"""
|
|
"""
|
|
Test qu'un abonnement ne peut pas être facturé deux fois pendant une
|
|
Test qu'un abonnement ne peut pas être facturé deux fois pendant une
|
|
@@ -32,10 +62,10 @@ class BillingInvoiceCreationTests(TestCase):
|
|
member=member,
|
|
member=member,
|
|
offer=offer)
|
|
offer=offer)
|
|
subscription.save()
|
|
subscription.save()
|
|
|
|
+
|
|
|
|
|
|
invoice = Invoice(member=member)
|
|
invoice = Invoice(member=member)
|
|
invoice.save()
|
|
invoice.save()
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
invoice.details.create(label=offer.name,
|
|
invoice.details.create(label=offer.name,
|
|
@@ -53,18 +83,18 @@ class BillingInvoiceCreationTests(TestCase):
|
|
period_to=datetime.date(2014,8,31))
|
|
period_to=datetime.date(2014,8,31))
|
|
|
|
|
|
|
|
|
|
-
|
|
+
|
|
|
|
|
|
- invoice_test_1 = create_invoice_for_a_period(member,
|
|
+ invoice_test_1 = create_member_invoice_for_a_period(
|
|
- datetime.date(2014,2,1))
|
|
+ member,datetime.date(2014,2,1))
|
|
self.assertEqual(invoice_test_1, None)
|
|
self.assertEqual(invoice_test_1, None)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- invoice_test_2 = create_invoice_for_a_period(member,
|
|
+ invoice_test_2 = create_member_invoice_for_a_period(
|
|
- datetime.date(2014,4,1))
|
|
+ member, datetime.date(2014,4,1))
|
|
self.assertEqual(invoice_test_2.details.first().period_from,
|
|
self.assertEqual(invoice_test_2.details.first().period_from,
|
|
datetime.date(2014,4,1))
|
|
datetime.date(2014,4,1))
|
|
self.assertEqual(invoice_test_2.details.first().period_to,
|
|
self.assertEqual(invoice_test_2.details.first().period_to,
|