コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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
        )
コード例 #4
0
    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)
コード例 #5
0
ファイル: test_pledges.py プロジェクト: acidjunk/zipfelchappe
 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,
     )
コード例 #6
0
 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)
コード例 #7
0
    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.')
コード例 #8
0
ファイル: test_rewards.py プロジェクト: acidjunk/zipfelchappe
    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
        )
コード例 #9
0
    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'))
コード例 #10
0
    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)
コード例 #11
0
 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)
コード例 #12
0
    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)
コード例 #13
0
ファイル: test_rewards.py プロジェクト: acidjunk/zipfelchappe
    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)
コード例 #14
0
ファイル: test_api.py プロジェクト: wejhink/zipfelchappe
    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()
コード例 #15
0
ファイル: test_cod.py プロジェクト: acidjunk/zipfelchappe
    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()