manager: fix handling of missing groups with python 3 (#38674)

This commit is contained in:
Frédéric Péters 2019-12-20 16:47:34 +01:00
parent 04244f5ad5
commit 71421c4266
2 changed files with 23 additions and 1 deletions

View File

@ -83,7 +83,7 @@ class SiteImportView(FormView):
try:
import_site(json_site)
except MissingGroups as e:
form.add_error('site_json', unicode(e))
form.add_error('site_json', force_text(e))
return self.form_invalid(form)
return super(SiteImportView, self).form_valid(form)

View File

@ -440,6 +440,28 @@ def test_site_export_import(app, admin_user):
resp = resp.form.submit()
assert 'File is not in the expected JSON format.' in resp.text
def test_site_export_import_missing_group(app, admin_user):
Page.objects.all().delete()
group = Group.objects.create(name='foobar')
page1 = Page(title='One', slug='one', template_name='standard')
page1.save()
page1.groups.set([group])
app = login(app)
resp = app.get('/manage/')
resp = resp.click('Export Site')
assert resp.headers['content-type'] == 'application/json'
site_export = resp.body
Page.objects.all().delete()
group.delete()
app = login(app)
resp = app.get('/manage/')
resp = resp.click('Import Site')
resp.form['site_json'] = Upload('site-export.json', site_export, 'application/json')
resp = resp.form.submit()
assert 'Missing groups: foobar' in resp.text
def test_duplicate_page(app, admin_user):
page = Page.objects.create(title='One', slug='one', template_name='standard')