Example #1
0
 def test_tags_error(self):
     self.add_restricted('i_am_a_restricted_tag', 'sdk')
     data = self.data.copy()
     data.update({'tags': 'i_am_a_restricted_tag'})
     form = forms.AdditionalDetailsForm(
         data=data, request=self.request, instance=self.addon)
     assert form.errors['tags'][0] == (
         '"i_am_a_restricted_tag" is a reserved tag and cannot be used.')
     data.update({'tags': 'i_am_a_restricted_tag, sdk'})
     form = forms.AdditionalDetailsForm(
         data=data, request=self.request, instance=self.addon)
     assert form.errors['tags'][0] == (
         '"i_am_a_restricted_tag", "sdk" are reserved tags and'
         ' cannot be used.')
Example #2
0
 def test_bogus_homepage(self):
     form = forms.AdditionalDetailsForm(
         {'homepage': 'javascript://something.com'},
         request=self.request,
         instance=self.addon)
     assert not form.is_valid()
     assert form.errors['homepage'] == [u'Enter a valid URL.']
Example #3
0
 def test_tags_limit(self):
     extra = Tag.objects.count() - amo.MAX_TAGS
     data = {**self.data, 'tags': [tag.tag_text for tag in Tag.objects.all()]}
     form = forms.AdditionalDetailsForm(
         data=data, request=self.request, instance=self.addon
     )
     assert not form.is_valid()
     assert form.errors['tags'] == [f'You have {extra} too many tags.']
Example #4
0
 def add_tags(self, tags):
     data = self.data.copy()
     data.update({'tags': tags})
     form = forms.AdditionalDetailsForm(
         data=data, request=self.request, instance=self.addon)
     assert form.is_valid()
     form.save(self.addon)
     return form
Example #5
0
 def test_cannot_create_new_tags(self):
     data = {**self.data, 'tags': ['bar']}
     form = forms.AdditionalDetailsForm(data=data,
                                        request=self.request,
                                        instance=self.addon)
     assert not form.is_valid()
     assert form.errors['tags'] == [
         'Select a valid choice. bar is not one of the available choices.'
     ]
Example #6
0
 def test_tags_long(self):
     tag = ' -%s' % ('t' * 128)
     data = self.data.copy()
     data.update({"tags": tag})
     form = forms.AdditionalDetailsForm(
         data=data, request=self.request, instance=self.addon)
     assert not form.is_valid()
     assert form.errors['tags'] == [
         'All tags must be 128 characters or less after invalid characters'
         ' are removed.']
Example #7
0
    def test_tags_restricted(self):
        self.add_restricted()
        self.add_tags('foo, bar')
        form = forms.AdditionalDetailsForm(
            data=self.data, request=self.request, instance=self.addon)

        assert form.fields['tags'].initial == 'bar, foo'
        assert self.get_tag_text() == ['bar', 'foo', 'i_am_a_restricted_tag']
        self.add_tags('')
        assert self.get_tag_text() == ['i_am_a_restricted_tag']
Example #8
0
    def test_tags_admin_restricted(self, action_allowed):
        action_allowed.return_value = True
        self.add_restricted('i_am_a_restricted_tag')
        self.add_tags('foo, bar')
        assert self.get_tag_text() == ['bar', 'foo']
        self.add_tags('foo, bar, i_am_a_restricted_tag')

        assert self.get_tag_text() == ['bar', 'foo', 'i_am_a_restricted_tag']
        form = forms.AdditionalDetailsForm(
            data=self.data, request=self.request, instance=self.addon)
        assert form.fields['tags'].initial == 'bar, foo, i_am_a_restricted_tag'
Example #9
0
    def test_change_tags(self):
        tag_old = Tag.objects.create(tag_text='old')
        AddonTag.objects.create(tag=tag_old, addon=self.addon)
        assert self._get_tag_text() == ['old']

        tag_bar = Tag.objects.create(tag_text='bar')
        tag_foo = Tag.objects.create(tag_text='foo')
        data = {**self.data, 'tags': ['bar', 'foo']}
        form = forms.AdditionalDetailsForm(data=data,
                                           request=self.request,
                                           instance=self.addon)
        assert form.is_valid()
        form.save(self.addon)
        assert self._get_tag_text() == ['bar', 'foo']
        assert tag_bar.reload().num_addons == 1
        assert tag_foo.reload().num_addons == 1
        assert tag_old.reload().num_addons == 0
Example #10
0
 def test_homepage_is_not_required(self):
     form = forms.AdditionalDetailsForm({'default_locale': 'en-US'},
                                        request=self.request,
                                        instance=self.addon)
     assert form.is_valid()
Example #11
0
 def test_ftp_homepage(self):
     form = forms.AdditionalDetailsForm({'homepage': 'ftp://foo.com'},
                                        request=self.request,
                                        instance=self.addon)
     assert not form.is_valid()
     assert form.errors['homepage'] == ['Enter a valid URL.']
Example #12
0
 def test_locales(self):
     form = forms.AdditionalDetailsForm(request=self.request,
                                        instance=self.addon)
     assert form.fields['default_locale'].choices[0][0] == 'af'