def test_patchy_coverage(self):
     some_plan = generator.arbitrary_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_patchy_coverage(self):
     some_plan = generator.arbitrary_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.arbitrary_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.arbitrary_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()
 def test_incomplete_starting_coverage(self):
     some_plan = generator.arbitrary_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()
 def test_full_coverage(self):
     some_plan = generator.arbitrary_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()