Beispiel #1
0
    def test_generate_certificate_english(self):
        """
        test the certificate download view (english)
        """
        from c3smembership.membership_certificate import generate_certificate
        request = testing.DummyRequest()
        request.matchdict = {
            'id': '2',
            'name': 'foobar',
            'token': 'hotzenplotz'
        }

        result = generate_certificate(request)
        if DEBUG:
            print(result)

        # check: this is *not* found because the token is *invalid*
        self.assertTrue(result.status_code == 404)  # not found

        request.matchdict = {
            'id': '2',
            'name': 'foobar',
            'token': 'hotzenplotz123'
        }
        member2 = C3sMember.get_by_id(2)
        member2.certificate_token = u'hotzenplotz123'
        # now the database matches the matchdict

        member2.certificate_email_date = datetime.now() - timedelta(weeks=1)
        member2.membership_accepted = True
        member2.membership_loss_date = date.today() - timedelta(days=1)
        result = generate_certificate(request)
        self.assertEqual(result.status_code, 404)

        member2.certificate_email_date = datetime.now() - timedelta(weeks=1)
        member2.membership_accepted = True
        member2.membership_loss_date = date.today() + timedelta(days=1)
        result = generate_certificate(request)
        self.assertEqual(result.status_code, 200)

        member2.certificate_email_date = datetime.now() - timedelta(weeks=1)
        member2.membership_accepted = True
        member2.membership_loss_date = None
        result = generate_certificate(request)

        if DEBUG:  # pragma: no cover
            print("size of resulting certificate PDF here: {}".format(
                len(result.body)))
            print("min and max: {} {}".format(
                _min_PDF_size, _max_PDF_size))

        self.assertTrue(_min_PDF_size < len(result.body) < _max_PDF_size)
        self.assertTrue(result.content_type == 'application/pdf')
Beispiel #2
0
    def test_generate_certificate_founder(self):
        """
        test the certificate download view (german)
        """
        from c3smembership.membership_certificate import generate_certificate
        request = testing.DummyRequest()
        request.matchdict = {
            'id': '3',
            'name': 'foobar',
            'token': 'hotzenplotz123'
        }
        member = C3sMember.get_by_id(3)
        member.certificate_token = u'hotzenplotz123'
        member.membership_accepted = True

        # need to get the date right!
        member.certificate_email_date = datetime.now(
        ) - timedelta(weeks=1)
        result = generate_certificate(request)

        # print result.body
        self.assertTrue(_min_PDF_size < len(result.body) < _max_PDF_size)
        self.assertTrue(result.content_type == 'application/pdf')

        # edge case: member has one share
        member.certificate_token = u'hotzenplotz123'
        member.num_shares = 1

        result = generate_certificate(request)
        self.assertTrue(_min_PDF_size < len(result.body) < _max_PDF_size)
        self.assertTrue(result.content_type == 'application/pdf')

        # edge case: member has one share
        member.certificate_token = u'hotzenplotz123'
        member.is_legalentity = True

        result = generate_certificate(request)
        member.locale = u'de'
        result = generate_certificate(request)

        if DEBUG:  # pragma: no cover
            print("size of resulting certificate PDF: {}".format(
                len(result.body)))

        self.assertTrue(_min_PDF_size < len(result.body) < _max_PDF_size)
        self.assertTrue(result.content_type == 'application/pdf')
Beispiel #3
0
    def test_generate_certificate_awkward_characters(self):
        """
        test the certificate generation with awkward characters in datasets
        because LaTeX interprets some characters as special characters.
        """
        from c3smembership.membership_certificate import generate_certificate
        request = testing.DummyRequest()
        request.matchdict = {
            'id': '1',
            'name': 'foobar',
            'token': 'hotzenplotz'
        }

        result = generate_certificate(request)

        self.assertTrue(result.status_code == 404)  # not found

        request.matchdict = {
            'id': '1',
            'name': 'foobar',
            'token': 'hotzenplotz123'
        }
        member = C3sMember.get_by_id(1)
        member.firstname = u"Foobar Corp & Co."
        member.lastname = u"Your Number #1"
        member.certificate_token = u'hotzenplotz123'
        member.membership_accepted = True

        # # need to get the date right!
        member.certificate_email_date = datetime.now(
        ) - timedelta(weeks=1)

        result = generate_certificate(request)
        if DEBUG:  # pragma: no cover
            print("size of resulting certificate PDF: {}".format(
                len(result.body)))

        self.assertTrue(_min_PDF_size < len(result.body) < _max_PDF_size)
        self.assertTrue(result.content_type == 'application/pdf')