diff --git a/combo/manager/views.py b/combo/manager/views.py index c2f375c0..5992fa2f 100644 --- a/combo/manager/views.py +++ b/combo/manager/views.py @@ -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) diff --git a/tests/test_manager.py b/tests/test_manager.py index 5cdeac90..0b9b7aef 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -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')