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."])
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."])
def add_flatpage(request): context_instance = RequestContext(request) info = {} form = FlatpageForm() if request.method == 'POST': data = request.POST.copy() data['sites'] = 1 data['flatPage'] = FlatPage() res = validate_flatpage(data) if res: form = FlatpageForm(data) if form.is_valid(): try: form.save() messages.success(request, 'Created new site page.') return redirect('add_flatpage') except Exception as e: print e messages.error(request, 'An error has occurred.') else: messages.error(request, 'Site page with url %s already exists.' % data['url']) info['form'] = form info['mod'] = 'Create' return render_to_response('admin/flatpages/add_flatpage.html',info,context_instance)
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." )
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.')]})
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."])
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.", )
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.')]})
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."])
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.")]})
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']})
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())
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")
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" ] }, )
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})
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})
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())
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."])
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())