def test_clean(self): account = BillingAccount.objects.create( currency=generator.init_default_currency(), ) subscription = Subscription.objects.create( account=account, date_start=date.today(), plan_version=generator.subscribable_plan(), subscriber=Subscriber.objects.create(domain='test') ) invoice = Invoice.objects.create( date_start=date.today(), date_end=date.today(), subscription=subscription, ) line_item = LineItem.objects.create( invoice=invoice, ) with self.assertRaises(ValidationError): try: CreditAdjustment( invoice=invoice, line_item=line_item, ).save() except ValidationError as e: self.assertIn('__all__', e.error_dict) raise e
def test_patchy_coverage(self): some_plan = generator.subscribable_plan() middle_date = self.invoice_end - datetime.timedelta(days=15) Subscription.new_domain_subscription( self.account, self.domain, some_plan, date_start=self.invoice_start + datetime.timedelta(days=1), date_end=middle_date ) next_start = middle_date + datetime.timedelta(days=2) next_end = next_start + datetime.timedelta(days=2) Subscription.new_domain_subscription( self.account, self.domain, some_plan, date_start=next_start, date_end=next_end, ) final_start = next_end + datetime.timedelta(days=2) Subscription.new_domain_subscription( self.account, self.domain, some_plan, date_start=final_start, date_end=self.invoice_end - datetime.timedelta(days=1), ) subscriptions = self.invoice_factory._get_subscriptions() self.assertEqual(len(subscriptions), 3) community_ranges = self.invoice_factory._get_community_ranges(subscriptions) self.assertEqual(len(community_ranges), 4) self._clean_subs()
def test_full_coverage(self): some_plan = generator.subscribable_plan() Subscription.new_domain_subscription( self.account, self.domain, some_plan, date_start=self.invoice_start, date_end=self.invoice_end + datetime.timedelta(days=1), ) subscriptions = self.invoice_factory._get_subscriptions() community_ranges = self.invoice_factory._get_community_ranges(subscriptions) self.assertEqual(len(community_ranges), 0) self._clean_subs()
def test_incomplete_starting_coverage(self): some_plan = generator.subscribable_plan() subscription = Subscription.new_domain_subscription( self.account, self.domain, some_plan, date_start=self.invoice_start + datetime.timedelta(days=3) ) subscriptions = self.invoice_factory._get_subscriptions() community_ranges = self.invoice_factory._get_community_ranges(subscriptions) self.assertEqual(len(community_ranges), 1) self.assertEqual(community_ranges[0][0], self.invoice_start) self.assertEqual(community_ranges[0][1], subscription.date_start) self._clean_subs()