def test_collect_pledges(self): pledge1 = PledgeFactory.create(project=self.project1, amount=100.00, reward=self.reward) pledge2 = PledgeFactory.create(project=self.project1, amount=150.00, reward=self.reward) self.project1.end = timezone.now() self.project1.save() url = reverse("admin:zipfelchappe_project_collect_pledges", kwargs={"project_id": self.project1.id}) self.client.login(username=self.admin.username, password="******") self.assertTrue(self.project1.has_pledges) self.assertTrue(self.project1.is_financed) self.assertEquals(len(self.project1.collectable_pledges), 2) if hasattr(settings, "ZIPFELCHAPPE_POSTFINANCE"): if settings["ZIPFELCHAPPE_POSTFINANCE"]["LIVE"]: raise AttributeError("Payment is live.") elif hasattr(settings, "ZIPFELCHAPPE_PAYPAL"): if settings["ZIPFELCHAPPE_PAYPAL"]["LIVE"]: raise AttributeError("Payment is live.") # open the project detail page response = self.client.get("/admin/zipfelchappe/project/%s/" % self.project1.id) self.assertEquals(200, response.status_code) self.assertContains(response, _("Collect %(amount)s authorized pledges" % {"amount": 2})) response = self.client.get(url) self.assertEquals(200, response.status_code) self.assertContains(response, _("Collecting")) self.assertContains(response, self.project1.title)
def setUp(self): self.project = ProjectFactory.create() self.p1 = PledgeFactory.create( project=self.project, amount=10.00, ) self.p2 = PledgeFactory.create(project=self.project, amount=20.00, anonymously=True)
def setUp(self): self.project = ProjectFactory.create() self.p1 = PledgeFactory.create( project=self.project, amount=10.00, ) self.p2 = PledgeFactory.create( project=self.project, amount=20.00, anonymously=True )
def setUp(self): self.project = ProjectFactory.create() self.reward = RewardFactory.create(project=self.project, minimum=20.00, quantity=5) self.p1 = PledgeFactory.create(project=self.project, amount=25.00, reward=self.reward) # Payment is not saved yet self.p2 = PledgeFactory.build(project=self.project, amount=20.00, reward=self.reward)
def setUp(self): self.project = ProjectFactory.create() self.user = UserFactory.create() self.backer = BackerFactory.create(user=self.user) self.p1 = PledgeFactory.create( project=self.project, amount=10.00, )
def test_change_view(self): self.client.login(username=self.admin.username, password="******") pledge1 = PledgeFactory.create(project=self.project1, amount=100.00, reward=self.reward) url = reverse("admin:zipfelchappe_pledge_change", args=[pledge1.id]) self.assertIsNotNone(url) response = self.client.get(url) self.assertEqual(response.status_code, 200) url = reverse("admin:zipfelchappe_pledge_change", args=[100]) response = self.client.get(url) self.assertEqual(response.status_code, 404)
def test_unavailable_rewards(self): # Validation should prevent to choose awards that are given away url = '/projects/back/%s/' % self.project1.slug # Give away the limited reward PledgeFactory.create( project=self.project1, amount=25.00, reward=self.reward ) # Try to create pledge with unavailable reward response = self.client.post(url, { 'project': self.project1.id, 'amount': '20', 'reward': self.reward.id, 'accept_tac': True }) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Sorry, this reward is not available anymore.')
def setUp(self): self.project = ProjectFactory.create() self.reward = RewardFactory.create( project=self.project, minimum=20.00, quantity=5 ) self.p1 = PledgeFactory.create( project=self.project, amount=25.00, reward=self.reward ) # Payment is not saved yet self.p2 = PledgeFactory.build( project=self.project, amount=20.00, reward=self.reward )
def test_anonymous_pledge(self): # The form must contain the anonymous field. back_url = app_reverse('zipfelchappe_backer_create', app_settings.ROOT_URLS, kwargs={'slug': self.project1.slug}) detail_url = app_reverse('zipfelchappe_project_detail', app_settings.ROOT_URLS, kwargs={'slug': self.project1.slug}) response = self.client.get(back_url) self.assertContains(response, '<input id="id_anonymously"') user1 = UserFactory.create() backer1 = BackerFactory.create(user=user1) p1 = PledgeFactory.create( project=self.project1, amount=8, backer=backer1 ) user2 = UserFactory.create( username='******', email='*****@*****.**', first_name='Bill', last_name='Gates' ) backer = BackerFactory.create(user=user2) p2 = PledgeFactory.create( project=self.project1, amount=11, anonymously=True, backer=backer ) response = self.client.get(detail_url) self.assertFalse(p1.anonymously) self.assertTrue(p2.anonymously) self.assertContains(response, self.project1.title) self.assertContains(response, 'Hans Muster') self.assertContains(response, '19 CHF') self.assertNotContains(response, 'Gates') self.assertNotContains(response, 'Bill') self.assertContains(response, _('Anonymous'))
def test_collect_pledges(self): pledge1 = PledgeFactory.create( project=self.project1, amount=100.00, reward=self.reward, ) pledge2 = PledgeFactory.create( project=self.project1, amount=150.00, reward=self.reward, ) self.project1.end = timezone.now() self.project1.save() url = reverse('admin:zipfelchappe_project_collect_pledges', kwargs={'project_id': self.project1.id}) self.client.login(username=self.admin.username, password='******') self.assertTrue(self.project1.has_pledges) self.assertTrue(self.project1.is_financed) self.assertEquals(len(self.project1.collectable_pledges), 2) if hasattr(settings, 'ZIPFELCHAPPE_POSTFINANCE'): if settings['ZIPFELCHAPPE_POSTFINANCE']['LIVE']: raise AttributeError('Payment is live.') elif hasattr(settings, 'ZIPFELCHAPPE_PAYPAL'): if settings['ZIPFELCHAPPE_PAYPAL']['LIVE']: raise AttributeError('Payment is live.') # open the project detail page response = self.client.get('/admin/zipfelchappe/project/%s/' % self.project1.id) self.assertEquals(200, response.status_code) self.assertContains( response, _('Collect %(amount)s authorized pledges' % {'amount': 2})) response = self.client.get(url) self.assertEquals(200, response.status_code) self.assertContains(response, _('Collecting')) self.assertContains(response, self.project1.title)
def test_change_view(self): self.client.login(username=self.admin.username, password='******') pledge1 = PledgeFactory.create( project=self.project1, amount=100.00, reward=self.reward, ) url = reverse('admin:zipfelchappe_pledge_change', args=[pledge1.id]) self.assertIsNotNone(url) response = self.client.get(url) self.assertEqual(response.status_code, 200) url = reverse('admin:zipfelchappe_pledge_change', args=[100]) response = self.client.get(url) self.assertEqual(response.status_code, 404)
def test_available(self): self.assertEquals(self.reward.available, 4) self.p2.save() self.assertEquals(self.reward.available, 3) p3 = PledgeFactory.create(project=self.project, amount=25.00, reward=self.reward, status=Pledge.UNAUTHORIZED) self.assertEquals(self.reward.available, 2) self.assertTrue(self.reward.is_available) # Pledge failed p3.status = Pledge.FAILED p3.save() self.assertEquals(self.reward.available, 3)
def test_available(self): self.assertEquals(self.reward.available, 4) self.p2.save() self.assertEquals(self.reward.available, 3) p3 = PledgeFactory.create( project=self.project, amount=25.00, reward=self.reward, status=Pledge.UNAUTHORIZED ) self.assertEquals(self.reward.available, 2) self.assertTrue(self.reward.is_available) # Pledge failed p3.status = Pledge.FAILED p3.save() self.assertEquals(self.reward.available, 3)
def setUp(self): # feincms page containing zipfelchappe app content self.page = Page.objects.create(title='Projects', slug='projects', override_url='/') ct = self.page.content_type_for(ApplicationContent) ct.objects.create(parent=self.page, urlconf_path=app_settings.ROOT_URLS) self.project = ProjectFactory.create() self.p1 = PledgeFactory.create(project=self.project, amount=10, provider='postfinance') self.user = UserFactory.create(first_name='Hans', last_name='Muster') self.p1.backer.user = self.user self.p1.backer.save() self.client = self.get_client_with_session()
def setUp(self): # feincms page containing zipfelchappe app content self.page = Page.objects.create(title='Projects', slug='projects', override_url='/') ct = self.page.content_type_for(ApplicationContent) ct.objects.create(parent=self.page, urlconf_path=app_settings.ROOT_URLS) self.project = ProjectFactory.create() self.p1 = PledgeFactory.create( project=self.project, amount=10, provider='postfinance' ) self.user = UserFactory.create( first_name='Hans', last_name='Muster' ) self.p1.backer.user = self.user self.p1.backer.save() self.client = self.get_client_with_session()