예제 #1
0
    def test_invalid_urls(self):
        assert not ReplacementAddonAdmin(
            ReplacementAddon, admin.site).get_form(None)(
                {'guid': 'foo', 'path': 'ftp://google.com/'}).is_valid()
        assert not ReplacementAddonAdmin(
            ReplacementAddon, admin.site).get_form(None)(
                {'guid': 'foo', 'path': 'https://88999@~'}).is_valid()
        assert not ReplacementAddonAdmin(
            ReplacementAddon, admin.site).get_form(None)(
                {'guid': 'foo', 'path': 'https://www. rutrt/'}).is_valid()

        path = '/addon/bar/'
        site = settings.SITE_URL
        full_url = site + path
        # path is okay
        assert ReplacementAddonAdmin(
            ReplacementAddon, admin.site).get_form(None)(
                {'guid': 'foo', 'path': path}).is_valid()
        # but we don't allow full urls for AMO paths
        form = ReplacementAddonAdmin(
            ReplacementAddon, admin.site).get_form(None)(
                {'guid': 'foo', 'path': full_url})
        assert not form.is_valid()
        assert ('Paths for [%s] should be relative, not full URLs including '
                'the domain name' % site in form.errors['path'])
예제 #2
0
 def test_valid_addon(self):
     addon_factory(slug='bar')
     form = ReplacementAddonAdmin(
         ReplacementAddon, admin.site).get_form(None)(
             {'guid': 'foo', 'path': '/addon/bar/'})
     assert form.is_valid(), form.errors
     assert form.cleaned_data['path'] == '/addon/bar/'
예제 #3
0
 def test_valid_collection(self):
     bagpuss = user_factory(username='******')
     collection_factory(slug='stuff', author=bagpuss)
     form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(None)(
         {'guid': 'foo', 'path': '/collections/bagpuss/stuff/'})
     assert form.is_valid(), form.errors
     assert form.cleaned_data['path'] == '/collections/bagpuss/stuff/'
예제 #4
0
 def test_invalid(self):
     form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(None)({
         'guid':
         'foo',
         'path':
         '/invalid_url/'
     })
     assert not form.is_valid()
예제 #5
0
 def test_url(self):
     form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(None)({
         'guid':
         'foo',
         'path':
         'https://google.com/'
     })
     assert form.is_valid()
예제 #6
0
 def test_valid_addon(self):
     addon_factory(slug='bar')
     form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(None)({
         'guid':
         'foo',
         'path':
         '/addon/bar/'
     })
     assert form.is_valid(), form.errors
예제 #7
0
 def test_url(self):
     form = ReplacementAddonAdmin(ReplacementAddon,
                                  admin.site).get_form(None)({
                                      'guid':
                                      'foo',
                                      'path':
                                      'https://google.com/'
                                  })
     assert form.is_valid()
     assert form.cleaned_data['path'] == 'https://google.com/'
예제 #8
0
 def test_valid_collection(self):
     bagpuss = user_factory(username='******')
     collection_factory(slug='stuff', author=bagpuss)
     form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(None)({
         'guid':
         'foo',
         'path':
         '/collections/bagpuss/stuff/'
     })
     assert form.is_valid(), form.errors
예제 #9
0
 def test_list_values(self):
     # '@foofoo&foo' isn't a valid guid, because &, but testing urlencoding.
     ReplacementAddon.objects.create(guid='@foofoo&foo', path='/addon/bar/')
     request = RequestFactory().get(
         '/en-US/admin/models/addons/replacementaddon/')
     request.user = UserProfile.objects.get(email='*****@*****.**')
     adminview = ReplacementAddonAdmin(ReplacementAddon,
                                       StaffAdminSite(name='staffadmin'))
     view = adminview.changelist_view(request)
     assert '@foofoo&foo' in view.rendered_content
     assert '/addon/bar/' in view.rendered_content
     test_url = '<a href="%s">Test</a>' % (
         reverse('addons.find_replacement') + '?guid=%40foofoo%26foo')
     assert test_url in view.rendered_content, view.rendered_content
     # guid is not on AMO so no slug to show
     assert '- Add-on not on AMO -' in view.rendered_content
     # show the slug when the add-on exists
     addon_factory(guid='@foofoo&foo', slug='slugymcslugface')
     view = adminview.changelist_view(request)
     assert 'slugymcslugface' in view.rendered_content
예제 #10
0
    def test_invalid_urls(self):
        assert not ReplacementAddonAdmin(ReplacementAddon, None).get_form(
            None)({'guid': 'foo', 'path': 'ftp://google.com/'}).is_valid()
        assert not ReplacementAddonAdmin(ReplacementAddon, None).get_form(
            None)({'guid': 'foo', 'path': 'https://88999@~'}).is_valid()
        assert not ReplacementAddonAdmin(ReplacementAddon, None).get_form(
            None)({'guid': 'foo', 'path': 'https://www. rutrt/'}).is_valid()

        path = '/addon/bar/'
        site = settings.SITE_URL
        full_url = site + path
        # path is okay
        assert ReplacementAddonAdmin(ReplacementAddon, None).get_form(
            None)({'guid': 'foo', 'path': path}).is_valid()
        # but we don't allow full urls for AMO paths
        form = ReplacementAddonAdmin(ReplacementAddon, None).get_form(
            None)({'guid': 'foo', 'path': full_url})
        assert not form.is_valid()
        assert ('Paths for [%s] should be relative, not full URLs including '
                'the domain name' % site in form.errors['__all__'])
예제 #11
0
 def test_url(self):
     form = ReplacementAddonAdmin(
         ReplacementAddon, admin.site).get_form(None)(
             {'guid': 'foo', 'path': 'https://google.com/'})
     assert form.is_valid()
     assert form.cleaned_data['path'] == 'https://google.com/'
예제 #12
0
 def test_invalid(self):
     form = ReplacementAddonAdmin(
         ReplacementAddon, admin.site).get_form(None)(
             {'guid': 'foo', 'path': '/invalid_url/'})
     assert not form.is_valid()
예제 #13
0
 def test_fields(self):
     model_admin = ReplacementAddonAdmin(ReplacementAddon, admin.site)
     self.assertEqual(
         list(model_admin.get_list_display(None)),
         ['guid', 'path', 'guid_slug', '_url'])
예제 #14
0
 def test_fields(self):
     model_admin = ReplacementAddonAdmin(ReplacementAddon, admin.site)
     self.assertEqual(list(model_admin.get_list_display(None)),
                      ['guid', 'path', 'guid_slug', '_url'])