예제 #1
0
    def test_invitation_accepted(self):
        """Verify inviter whose invitee accepts invitation is notified"""
        inviter = self.make_user("inviter")
        InvitationStat.add_invites(2)

        invitee_email = "*****@*****.**"
        with self.login(inviter):
            post_data = {"email_address": invitee_email}
            self.post("pinax_invitations:invite", data=post_data)
            self.response_200()

        invitation = JoinInvitation.objects.first()
        self.assertEqual(len(mail.outbox), 1)
        self.assertIn(invitee_email, mail.outbox[0].to)
        mail.outbox.clear()

        # Accept the invitation
        invitee_username = "******"
        post_data = dict(
            username=invitee_username,
            password="******",
            password_confirm="notasecret",
            email=invitee_email,
        )

        url = reverse("account_signup")
        self.post(url + f"?code={invitation.signup_code.code}", data=post_data)

        self.assertEqual(len(mail.outbox), 1)
        self.assertIn(inviter.email, mail.outbox[0].to)
        self.assertIn(
            f"User \"{invitee_username}\" ({invitee_email}) joined this site at your invitation",
            mail.outbox[0].body)
예제 #2
0
    def handle(self, *args, **kwargs):
        if len(args) == 0:
            sys.exit("You must supply the number of invites as an argument.")

        try:
            num_of_invites = int(args[0])
        except ValueError:
            sys.exit("The argument for number of invites must be an integer.")

        InvitationStat.add_invites(num_of_invites)
예제 #3
0
 def test_invite_view(self):
     """verify no errors when posting good form data"""
     user = self.make_user("amy")
     InvitationStat.add_invites(2)
     post_data = {
         "email_address": "*****@*****.**"
     }
     with self.login(user):
         self.post("pinax_invitations:invite", data=post_data)
         self.response_200()
예제 #4
0
    def test_already_invited(self):
        """Ensure form is not valid if invite has already been sent"""
        from_user = User.objects.create(username="******")
        to_user = User.objects.create(username="******", email="*****@*****.**")
        InvitationStat.add_invites(2)
        istat = from_user.invitationstat
        istat.refresh_from_db()

        # Create an existing invitation
        JoinInvitation.invite(from_user, to_user.email, send=False)

        # Attempt to invite same user again
        form_data = {
            "email_address": to_user.email
        }
        form = InviteForm(user=from_user, data=form_data)
        self.assertFalse(form.is_valid())
예제 #5
0
 def handle(self, *args, **options):
     InvitationStat.add_invites(options['num_invites'])
예제 #6
0
 def handle(self, *args, **options):
     InvitationStat.add_invites(options["num_invites"])