def test_homepage_with_campaign(self): now = timezone.now() start, end = now - timedelta(hours=8), now + timedelta(weeks=1) Campaign.objects.create(start=start, end=end, title='FooBarCaMpAIgN', target=100000) # make a donation before the campaign starts order = Order.objects.create(user=self.user, order_number=1) Donation.objects.create(amount=1000, user=self.user, project=self.project, status=DonationStatuses.paid, order=order, ready=now-timedelta(days=1)) # and a couple of donations in campaign, for a total amount of 2000+3000+4000 cents = 90 euros for i in range(1,4): amount = (i+1)*1000 Donation.objects.create(amount=amount, user=self.user, project=self.project, status=DonationStatuses.paid, order=order, ready=now+timedelta(days=i)) # and one after the campaign Donation.objects.create(amount=5000, user=self.user, project=self.project, status=DonationStatuses.paid, order=order, ready=now+timedelta(weeks=2)) self.project_with_fundraiser = OnePercentProjectFactory.create(amount_asked=50000) self.project_with_fundraiser.is_campaign = True self.project_with_fundraiser.save() self.fundraiser = FundRaiserFactory.create(owner=self.user, project=self.project_with_fundraiser) response = self.client.get(self.homepage_url) self.assertNotEqual(None, response.data['campaign']) self.assertEqual(response.data['campaign']['amount_donated'], '90.00')
def test_single_mail_on_new_fundraiser_donation(self): self.fundraiser_owner = BlueBottleUserFactory.create(email='*****@*****.**', primary_language='en') fundraiser = FundRaiserFactory.create(owner=self.fundraiser_owner, project=self.project) donation = DonationFactory.create(user=self.user, project=self.project, donation_type=Donation.DonationTypes.one_off, fundraiser=fundraiser) # Mailbox should not contain anything. self.assertEqual(len(mail.outbox), 0) donation.status = DonationStatuses.pending donation.save() # Save twice! donation.save() # Save with different status. donation.status = DonationStatuses.paid donation.save() # Fundraiser owner and project owner should have just one email each # careful, fundraiser mail is sent first self.assertEqual(len(mail.outbox), 2) # Verify that the link points to the fundraiser page m = mail.outbox.pop(0) match = re.search(r'https?://.*/go/fundraisers/(\d+)', m.body) self.assertEqual(int(match.group(1)), fundraiser.id) # verify that the mail is indeed directed to the fundraiser owner self.assertIn(self.fundraiser_owner.email, m.recipients())
def setUp(self): """ Create two project instances """ self.init_projects() self.campaign_phase = ProjectPhase.objects.get(slug='campaign') self.some_project = OnePercentProjectFactory.create(amount_asked=50000, status=self.campaign_phase) self.another_project = OnePercentProjectFactory.create(amount_asked=75000, status=self.campaign_phase) self.some_user = BlueBottleUserFactory.create() self.another_user = BlueBottleUserFactory.create() self.fundraiser = FundRaiserFactory.create(owner=self.some_user, project=self.some_project) self.fundraiser2 = FundRaiserFactory.create(owner=self.another_user, project=self.another_project) self.current_donations_url = reverse('fund-order-current-donation-list') self.current_order_url = reverse('fund-order-current-detail') self.fundraiser_list_url = reverse('fundraiser-list') self.fundraiser_url = reverse('fundraiser-detail', kwargs={'pk': self.fundraiser.pk}) self.fundraiser2_url = reverse('fundraiser-detail', kwargs={'pk': self.fundraiser2.pk})
def test_homepage_with_campaign(self): start, end = timezone.now() - timedelta(hours=8), timezone.now() + timedelta(weeks=1) Campaign.objects.create(start=start, end=end, title='FooBarCaMpAIgN', target=100000) self.project_with_fundraiser = OnePercentProjectFactory.create(amount_asked=50000) self.project_with_fundraiser.is_campaign = True self.project_with_fundraiser.save() self.fundraiser = FundRaiserFactory.create(owner=self.user, project=self.project_with_fundraiser) self.visit_homepage() self.assertTrue(self.browser.is_text_present('OUR CRAZY FUND-RACERS'))
def setUp(self): """ Create initial data. """ self.project_with_fundraiser = OnePercentProjectFactory.create(amount_asked=50000) self.project_without_fundraiser = OnePercentProjectFactory.create(amount_asked=75000) self.some_user = BlueBottleUserFactory.create() self.another_user = BlueBottleUserFactory.create() self.fundraiser = FundRaiserFactory.create(owner=self.some_user, project=self.project_with_fundraiser) self.project_with_fundraiser_url = '/projects/{0}'.format(self.project_with_fundraiser.slug) self.project_without_fundraiser_url = '/projects/{0}'.format(self.project_without_fundraiser.slug) self.fundraiser_url = '/fundraisers/{0}'.format(self.fundraiser.pk) self.new_fundraiser_url = '/project/{0}/new-fundraiser'.format(self.project_without_fundraiser.slug) # Force reload by visiting the home self.visit_path('')