示例#1
0
    def test_empty_email(self):
        UserProfile.objects.create(email='')
        with pytest.raises(forms.ValidationError) as exc_info:
            UserEmailField(
                queryset=UserProfile.objects.all()).clean('')

        assert exc_info.value.messages[0] == 'This field is required.'
示例#2
0
class EditThemeOwnerForm(happyforms.Form):
    owner = UserEmailField()

    def __init__(self, *args, **kw):
        self.instance = kw.pop('instance')

        super(EditThemeOwnerForm, self).__init__(*args, **kw)

        addon = self.instance

        self.fields['owner'].widget.attrs['placeholder'] = _(
            "Enter a new author's email address")

        try:
            self.instance_addonuser = addon.addonuser_set.all()[0]
            self.initial['owner'] = self.instance_addonuser.user.email
        except IndexError:
            # If there was never an author before, then don't require one now.
            self.instance_addonuser = None
            self.fields['owner'].required = False

    def save(self):
        data = self.cleaned_data

        if data.get('owner'):
            changed = (not self.instance_addonuser or
                       self.instance_addonuser != data['owner'])
            if changed:
                # Update Persona-specific data.
                persona = self.instance.persona
                persona.author = data['owner'].username
                persona.display_username = data['owner'].name
                persona.save()

            if not self.instance_addonuser:
                # If there previously never another owner, create one.
                self.instance.addonuser_set.create(user=data['owner'],
                                                   role=amo.AUTHOR_ROLE_OWNER)
            elif self.instance_addonuser != data['owner']:
                # If the owner has changed, update the `AddonUser` object.
                self.instance_addonuser.user = data['owner']
                self.instance_addonuser.role = amo.AUTHOR_ROLE_OWNER
                self.instance_addonuser.save()

            self.instance.modified = datetime.now()
            self.instance.save()

        return data
示例#3
0
 def test_failure(self):
     with pytest.raises(forms.ValidationError):
         UserEmailField().clean('xxx')
示例#4
0
 def test_success(self):
     user = UserProfile.objects.get(pk=2519)
     assert UserEmailField().clean(user.email) == user
示例#5
0
 def test_failure(self):
     with pytest.raises(forms.ValidationError):
         UserEmailField(queryset=UserProfile.objects.all()).clean('xxx')
示例#6
0
 def test_success(self):
     user = UserProfile.objects.get(pk=2519)
     assert (UserEmailField(queryset=UserProfile.objects.all()).clean(
         user.email) == user)
示例#7
0
 def test_success(self):
     user = UserProfile.objects.get(pk=2519)
     eq_(UserEmailField().clean(user.email), user)