kopia lustrzana https://github.com/wagtail/wagtail
Add tests for PageChooserBlock and AdminPageChooser adapters
rodzic
dac969a372
commit
0bef68cc3f
|
@ -26,6 +26,31 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
widget = widgets.AdminPageChooser()
|
||||
self.assertFalse(widget.is_hidden)
|
||||
|
||||
def test_adapt(self):
|
||||
widget = widgets.AdminPageChooser()
|
||||
|
||||
js_args = widgets.PageChooserAdapter().js_args(widget)
|
||||
self.assertInHTML("""<input id="__ID__" name="__NAME__" type="hidden" />""", js_args[0])
|
||||
self.assertIn(">Choose a page<", js_args[0])
|
||||
self.assertEqual(js_args[1], '__ID__')
|
||||
self.assertEqual(js_args[2], {
|
||||
'can_choose_root': False,
|
||||
'model_names': ['wagtailcore.page'],
|
||||
'user_perms': None
|
||||
})
|
||||
|
||||
def test_adapt_with_target_model(self):
|
||||
widget = widgets.AdminPageChooser(target_models=[SimplePage, EventPage])
|
||||
|
||||
js_args = widgets.PageChooserAdapter().js_args(widget)
|
||||
self.assertEqual(js_args[2]['model_names'], ['tests.simplepage', 'tests.eventpage'])
|
||||
|
||||
def test_adapt_with_can_choose_root(self):
|
||||
widget = widgets.AdminPageChooser(can_choose_root=True)
|
||||
|
||||
js_args = widgets.PageChooserAdapter().js_args(widget)
|
||||
self.assertTrue(js_args[2]['can_choose_root'])
|
||||
|
||||
def test_render_html(self):
|
||||
# render_html is mostly an internal API, but we do want to support calling it with None as
|
||||
# a value, to render a blank field without the JS initialiser (so that we can call that
|
||||
|
|
|
@ -3593,55 +3593,65 @@ class TestPageChooserBlock(TestCase):
|
|||
# None should deserialize to None
|
||||
self.assertEqual(block.to_python(None), None)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render(self):
|
||||
def test_adapt(self):
|
||||
from wagtail.admin.widgets.chooser import AdminPageChooser
|
||||
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page")
|
||||
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertInHTML('<input id="page" name="page" placeholder="" type="hidden" />', empty_form_html)
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["wagtailcore.page"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
christmas_page = Page.objects.get(slug='christmas')
|
||||
christmas_form_html = block.render_form(christmas_page, 'page')
|
||||
expected_html = '<input id="page" name="page" placeholder="" type="hidden" value="%d" />' % christmas_page.id
|
||||
self.assertInHTML(expected_html, christmas_form_html)
|
||||
self.assertIn("pick a page, any page", christmas_form_html)
|
||||
self.assertEqual(js_args[0], 'test_pagechooserblock')
|
||||
self.assertIsInstance(js_args[1], AdminPageChooser)
|
||||
self.assertEqual(js_args[1].target_models, [Page])
|
||||
self.assertFalse(js_args[1].can_choose_root)
|
||||
self.assertEqual(js_args[2], {
|
||||
'label': 'Test pagechooserblock',
|
||||
'required': True,
|
||||
'icon': 'redirect',
|
||||
'helpText': 'pick a page, any page',
|
||||
'classname': 'field model_choice_field widget-admin_page_chooser fieldname-test_pagechooserblock'
|
||||
})
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_target_model_default(self):
|
||||
block = blocks.PageChooserBlock()
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["wagtailcore.page"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_target_model_string(self):
|
||||
def test_adapt_with_target_model_string(self):
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page", page_type='tests.SimplePage')
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["tests.simplepage"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_target_model_literal(self):
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
self.assertEqual(js_args[1].target_models, [SimplePage])
|
||||
|
||||
def test_adapt_with_target_model_literal(self):
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page", page_type=SimplePage)
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["tests.simplepage"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_target_model_multiple_strings(self):
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
self.assertEqual(js_args[1].target_models, [SimplePage])
|
||||
|
||||
def test_adapt_with_target_model_multiple_strings(self):
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page", page_type=['tests.SimplePage', 'tests.EventPage'])
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["tests.simplepage", "tests.eventpage"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_target_model_multiple_literals(self):
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
self.assertEqual(js_args[1].target_models, [SimplePage, EventPage])
|
||||
|
||||
def test_adapt_with_target_model_multiple_literals(self):
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page", page_type=[SimplePage, EventPage])
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["tests.simplepage", "tests.eventpage"], "can_choose_root": false, "user_perms": null});', empty_form_html)
|
||||
|
||||
@unittest.expectedFailure # TODO(telepath)
|
||||
def test_form_render_with_can_choose_root(self):
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
self.assertEqual(js_args[1].target_models, [SimplePage, EventPage])
|
||||
|
||||
def test_adapt_with_can_choose_root(self):
|
||||
block = blocks.PageChooserBlock(help_text="pick a page, any page", can_choose_root=True)
|
||||
empty_form_html = block.render_form(None, 'page')
|
||||
self.assertIn('createPageChooser("page", null, {"model_names": ["wagtailcore.page"], "can_choose_root": true, "user_perms": null});', empty_form_html)
|
||||
|
||||
block.set_name('test_pagechooserblock')
|
||||
js_args = FieldBlockAdapter().js_args(block)
|
||||
|
||||
self.assertTrue(js_args[1].can_choose_root)
|
||||
|
||||
def test_form_response(self):
|
||||
block = blocks.PageChooserBlock()
|
||||
|
|
Ładowanie…
Reference in New Issue