Пример #1
0
    def test_flatpage_admin_form_url_uniqueness_validation(self):
        "The flatpage admin form correctly enforces url uniqueness among flatpages of the same site"
        data = dict(url='/myflatpage1', **self.form_data)

        FlatpageForm(data=data).save()

        f = FlatpageForm(data=data)

        self.assertFalse(f.is_valid())

        self.assertEqual(
            f.errors,
            {'__all__': [u'Flatpage with url /myflatpage1 already exists for site example.com']})
Пример #2
0
    def test_flatpage_admin_form_url_validation(self):
        "The flatpage admin form correctly validates urls"
        self.assertTrue(
            FlatpageForm(
                data=dict(url='/new_flatpage/', **self.form_data)).is_valid())
        self.assertTrue(
            FlatpageForm(data=dict(url='/some.special~chars/',
                                   **self.form_data)).is_valid())
        self.assertTrue(
            FlatpageForm(data=dict(url='/some.very_special~chars-here/',
                                   **self.form_data)).is_valid())

        self.assertFalse(
            FlatpageForm(
                data=dict(url='/a space/', **self.form_data)).is_valid())
        self.assertFalse(
            FlatpageForm(
                data=dict(url='/a % char/', **self.form_data)).is_valid())
        self.assertFalse(
            FlatpageForm(
                data=dict(url='/a ! char/', **self.form_data)).is_valid())
        self.assertFalse(
            FlatpageForm(
                data=dict(url='/a & char/', **self.form_data)).is_valid())
        self.assertFalse(
            FlatpageForm(
                data=dict(url='/a ? char/', **self.form_data)).is_valid())
Пример #3
0
 def test_flatpage_requires_trailing_slash_with_append_slash(self):
     form = FlatpageForm(
         data=dict(url='/no_trailing_slash', **self.form_data))
     with translation.override('en'):
         self.assertFalse(form.is_valid())
         self.assertEqual(form.errors['url'],
                          ["URL is missing a trailing slash."])
Пример #4
0
 def test_flatpage_requires_leading_slash(self):
     form = FlatpageForm(
         data=dict(url="no_leading_slash/", **self.form_data))
     with translation.override("en"):
         self.assertFalse(form.is_valid())
         self.assertEqual(form.errors["url"],
                          ["URL is missing a leading slash."])
Пример #5
0
def privacy_edit(request):
    """Privacy statements page"""
    if not request.user.is_superuser:
        return HttpResponseRedirect(reverse('index'))

    page_model = FlatPage.objects.get(url='/legal/privacy/')

    if request.method == 'POST':
        form = FlatpageForm(request.POST or None, instance=page_model)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('privacy'))
    else:
        form = FlatpageForm(instance=page_model)

    return render(request, 'om/legal/edit_privacy.html', {'form': form})
Пример #6
0
def imprint_edit(request):
    """Imprint and contact information page"""
    if not request.user.is_superuser:
        return HttpResponseRedirect(reverse('index'))

    page_model = FlatPage.objects.get(url='/legal/imprint/')

    if request.method == 'POST':
        form = FlatpageForm(request.POST or None, instance=page_model)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('imprint'))
    else:
        form = FlatpageForm(instance=page_model)

    return render(request, 'om/legal/edit_imprint.html', {'form': form})
Пример #7
0
 def test_flatpage_doesnt_requires_trailing_slash_without_append_slash(
         self):
     form = FlatpageForm(
         data=dict(url="/no_trailing_slash", **self.form_data))
     self.assertTrue(form.is_valid())
     with translation.override("en"):
         self.assertEqual(
             form.fields["url"].help_text,
             "Example: “/about/contact”. Make sure to have a leading slash.",
         )
Пример #8
0
    def test_flatpage_nosites(self):
        data = dict(url='/myflatpage1/', **self.form_data)
        data.update({'sites': ''})

        f = FlatpageForm(data=data)

        self.assertFalse(f.is_valid())

        self.assertEqual(
            f.errors,
            {'sites': [translation.ugettext('This field is required.')]})
Пример #9
0
    def test_flatpage_nosites(self):
        data = dict(url="/myflatpage1/", **self.form_data)
        data.update({"sites": ""})

        f = FlatpageForm(data=data)

        self.assertFalse(f.is_valid())

        self.assertEqual(
            f.errors,
            {"sites": [translation.gettext("This field is required.")]})
Пример #10
0
 def test_flatpage_requires_trailing_slash_with_append_slash(self):
     form = FlatpageForm(
         data=dict(url='/no_trailing_slash', **self.form_data))
     with translation.override('en'):
         self.assertEqual(
             form.fields['url'].help_text,
             "Example: '/about/contact/'. Make sure to have leading and "
             "trailing slashes.")
         self.assertFalse(form.is_valid())
         self.assertEqual(form.errors['url'],
                          ["URL is missing a trailing slash."])
Пример #11
0
    def test_flatpage_admin_form_url_uniqueness_validation(self):
        """
        The flatpage admin form correctly enforces url uniqueness among
        flatpages of the same site.
        """
        data = dict(url="/myflatpage1/", **self.form_data)

        FlatpageForm(data=data).save()

        f = FlatpageForm(data=data)

        with translation.override("en"):
            self.assertFalse(f.is_valid())

            self.assertEqual(
                f.errors,
                {
                    "__all__": [
                        "Flatpage with url /myflatpage1/ already exists for site "
                        "example.com"
                    ]
                },
            )
Пример #12
0
    def test_flatpage_admin_form_edit(self):
        """
        Existing flatpages can be edited in the admin form without triggering
        the url-uniqueness validation.
        """
        existing = FlatPage.objects.create(
            url="/myflatpage1/", title="Some page", content="The content")
        existing.sites.add(settings.SITE_ID)

        data = dict(url='/myflatpage1/', **self.form_data)

        f = FlatpageForm(data=data, instance=existing)

        self.assertTrue(f.is_valid(), f.errors)

        updated = f.save()

        self.assertEqual(updated.title, "A test page")
Пример #13
0
 def test_flatpage_doesnt_requires_trailing_slash_without_append_slash(
         self):
     form = FlatpageForm(
         data=dict(url='/no_trailing_slash', **self.form_data))
     self.assertTrue(form.is_valid())