class TestPageChooserPanel(TestCase): def setUp(self): model = PageChooserModel self.chosen_page = Page.objects.get(pk=2) test_instance = model.objects.create(page=self.chosen_page) self.dotted_model = model._meta.app_label + '.' + model._meta.model_name self.page_chooser_panel_class = PageChooserPanel('page', model) form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides()) form = form_class(instance=test_instance) form.errors['page'] = form.error_class(['errors']) self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance, form=form) def test_render_js_init(self): result = self.page_chooser_panel.render_as_field() self.assertIn( 'createPageChooser("{id}", "{model}", {parent});'.format( id="id_page", model=self.dotted_model, parent=self.chosen_page.get_parent().id), result) def test_get_chosen_item(self): result = self.page_chooser_panel.get_chosen_item() self.assertEqual(result, self.chosen_page) def test_render_as_field(self): result = self.page_chooser_panel.render_as_field() self.assertIn('<p class="help">help text</p>', result) self.assertIn('<span>errors</span>', result) def test_widget_overrides(self): result = self.page_chooser_panel.widget_overrides() self.assertIsInstance(result['page'], AdminPageChooser) def test_target_content_type(self): result = PageChooserPanel( 'barbecue', 'wagtailcore.site' ).target_content_type() self.assertEqual(result.name, 'site') def test_target_content_type_malformed_type(self): result = PageChooserPanel( 'barbecue', 'snowman' ) self.assertRaises(ImproperlyConfigured, result.target_content_type) def test_target_content_type_nonexistent_type(self): result = PageChooserPanel( 'barbecue', 'snowman.lorry' ) self.assertRaises(ImproperlyConfigured, result.target_content_type)
class TestPageChooserPanel(TestCase): def setUp(self): model = PageChooserModel self.chosen_page = Page.objects.get(pk=2) test_instance = model.objects.create(page=self.chosen_page) self.dotted_model = model._meta.app_label + '.' + model._meta.model_name self.page_chooser_panel_class = PageChooserPanel('page', model) form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides()) form = form_class(instance=test_instance) form.errors['page'] = form.error_class(['errors']) self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance, form=form) def test_render_js_init(self): result = self.page_chooser_panel.render_as_field() self.assertIn( 'createPageChooser("{id}", "{model}", {parent});'.format( id="id_page", model=self.dotted_model, parent=self.chosen_page.get_parent().id), result) def test_get_chosen_item(self): result = self.page_chooser_panel.get_chosen_item() self.assertEqual(result, self.chosen_page) def test_render_as_field(self): result = self.page_chooser_panel.render_as_field() self.assertIn('<p class="help">help text</p>', result) self.assertIn('<span>errors</span>', result) def test_widget_overrides(self): result = self.page_chooser_panel.widget_overrides() self.assertIsInstance(result['page'], AdminPageChooser) def test_target_content_type(self): result = PageChooserPanel( 'barbecue', 'wagtailcore.site' ).target_content_type() self.assertEqual(result.name, 'site') def test_target_content_type_malformed_type(self): result = PageChooserPanel( 'barbecue', 'snowman' ) self.assertRaises(ImproperlyConfigured, result.target_content_type) def test_target_content_type_nonexistent_type(self): result = PageChooserPanel( 'barbecue', 'snowman.lorry' ) self.assertRaises(ImproperlyConfigured, result.target_content_type)
class TestPageChooserPanel(TestCase): class FakeField(object): label = 'label' help_text = 'help text' errors = ['errors'] id_for_label = 'id for label' class FakeInstance(object): class FakePage(object): class FakeParent(object): id = 1 name = 'fake page' def get_parent(self): return self.FakeParent() def __init__(self): fake_page = self.FakePage() self.barbecue = fake_page def setUp(self): fake_field = self.FakeField() fake_instance = self.FakeInstance() self.page_chooser_panel = PageChooserPanel('barbecue')( instance=fake_instance, form={'barbecue': fake_field}) def test_render_js(self): result = self.page_chooser_panel.render_js() self.assertEqual(result, "createPageChooser(fixPrefix('id for label'), 'wagtailcore.page', 1);") def test_get_chosen_item(self): result = self.page_chooser_panel.get_chosen_item() self.assertEqual(result.name, 'fake page') def test_render_as_field(self): result = self.page_chooser_panel.render_as_field() self.assertIn('<p class="help">help text</p>', result) self.assertIn('<span>errors</span>', result) def test_widget_overrides(self): result = self.page_chooser_panel.widget_overrides() self.assertEqual(result, {'barbecue': HiddenInput}) def test_target_content_type(self): result = PageChooserPanel( 'barbecue', 'wagtailcore.site' ).target_content_type() self.assertEqual(result.name, 'site') def test_target_content_type_malformed_type(self): result = PageChooserPanel( 'barbecue', 'snowman' ) self.assertRaises(ImproperlyConfigured, result.target_content_type) def test_target_content_type_nonexistent_type(self): result = PageChooserPanel( 'barbecue', 'snowman.lorry' ) self.assertRaises(ImproperlyConfigured, result.target_content_type)
class TestPageChooserPanel(TestCase): class FakeField(object): label = 'label' help_text = 'help text' errors = ['errors'] id_for_label = 'id for label' class FakeInstance(object): class FakePage(object): class FakeParent(object): id = 1 name = 'fake page' def get_parent(self): return self.FakeParent() def __init__(self): fake_page = self.FakePage() self.barbecue = fake_page def setUp(self): fake_field = self.FakeField() fake_instance = self.FakeInstance() self.page_chooser_panel = PageChooserPanel('barbecue')( instance=fake_instance, form={ 'barbecue': fake_field }) def test_render_js(self): result = self.page_chooser_panel.render_js() self.assertEqual( result, "createPageChooser(fixPrefix('id for label'), 'wagtailcore.page', 1);" ) def test_get_chosen_item(self): result = self.page_chooser_panel.get_chosen_item() self.assertEqual(result.name, 'fake page') def test_render_as_field(self): result = self.page_chooser_panel.render_as_field() self.assertIn('<p class="help">help text</p>', result) self.assertIn('<span>errors</span>', result) def test_widget_overrides(self): result = self.page_chooser_panel.widget_overrides() self.assertEqual(result, {'barbecue': HiddenInput}) def test_target_content_type(self): result = PageChooserPanel('barbecue', 'wagtailcore.site').target_content_type() self.assertEqual(result.name, 'site') def test_target_content_type_malformed_type(self): result = PageChooserPanel('barbecue', 'snowman') self.assertRaises(ImproperlyConfigured, result.target_content_type) def test_target_content_type_nonexistent_type(self): result = PageChooserPanel('barbecue', 'snowman.lorry') self.assertRaises(ImproperlyConfigured, result.target_content_type)