Adapt billing tests to product activation structure

This commit is contained in:
fnux 2020-04-17 09:15:52 +02:00
parent 5d5bf486b5
commit 83a0ca0e4e
2 changed files with 8 additions and 4 deletions

View file

@ -481,7 +481,7 @@ class Order(models.Model):
# Trigger initial bill generation at order creation. # Trigger initial bill generation at order creation.
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
super(Order, self).save(*args, **kwargs) super(Order, self).save(*args, **kwargs)
Bill.generate_for(timezone.now().year, timezone.now().month, self.owner) Bill.generate_for(self.starting_date.year, self.starting_date.month, self.owner)
@property @property
def records(self): def records(self):
@ -496,6 +496,10 @@ class Order(models.Model):
return reduce(lambda acc, record: acc + record.recurring_price, self.records, 0) return reduce(lambda acc, record: acc + record.recurring_price, self.records, 0)
# Used by uncloud_pay tests. # Used by uncloud_pay tests.
@property
def bills(self):
return Bill.objects.filter(order=self)
def add_record(self, one_time_price, recurring_price, description): def add_record(self, one_time_price, recurring_price, description):
OrderRecord.objects.create(order=self, OrderRecord.objects.create(order=self,
one_time_price=one_time_price, one_time_price=one_time_price,

View file

@ -31,7 +31,7 @@ class BillingTestCase(TestCase):
order.add_record(one_time_price, recurring_price, description) order.add_record(one_time_price, recurring_price, description)
# Generate & check bill for first month: full recurring_price + setup. # Generate & check bill for first month: full recurring_price + setup.
first_month_bills = Bill.generate_for(2020, 3, self.user) first_month_bills = order.bills # Initial bill generated at order creation.
self.assertEqual(len(first_month_bills), 1) self.assertEqual(len(first_month_bills), 1)
self.assertEqual(first_month_bills[0].total, one_time_price + recurring_price) self.assertEqual(first_month_bills[0].total, one_time_price + recurring_price)
@ -65,7 +65,7 @@ class BillingTestCase(TestCase):
order.add_record(one_time_price, recurring_price, description) order.add_record(one_time_price, recurring_price, description)
# Generate & check bill for first year: recurring_price + setup. # Generate & check bill for first year: recurring_price + setup.
first_year_bills = Bill.generate_for(2020, 3, self.user) first_year_bills = order.bills # Initial bill generated at order creation.
self.assertEqual(len(first_year_bills), 1) self.assertEqual(len(first_year_bills), 1)
self.assertEqual(first_year_bills[0].starting_date.date(), self.assertEqual(first_year_bills[0].starting_date.date(),
date.fromisoformat('2020-03-31')) date.fromisoformat('2020-03-31'))
@ -106,7 +106,7 @@ class BillingTestCase(TestCase):
order.add_record(one_time_price, recurring_price, description) order.add_record(one_time_price, recurring_price, description)
# Generate & check bill for first month: recurring_price + setup. # Generate & check bill for first month: recurring_price + setup.
first_month_bills = Bill.generate_for(2020, 3, self.user) first_month_bills = order.bills
self.assertEqual(len(first_month_bills), 1) self.assertEqual(len(first_month_bills), 1)
self.assertEqual(float(first_month_bills[0].total), self.assertEqual(float(first_month_bills[0].total),
round(16 * recurring_price, AMOUNT_DECIMALS) + one_time_price) round(16 * recurring_price, AMOUNT_DECIMALS) + one_time_price)