def test_textfield_with_children(self): parent = add_plugin(self.placeholder, 'TextPlugin', 'en', body='') child1 = add_plugin(self.placeholder, 'DummyLinkPlugin', 'en', target=parent, label='CLICK ON LINK1') parent_body = ( '<p>Please <cms-plugin alt="Dummy Link Plugin - dummy link object "' 'title="Dummy Link Plugin - dummy link object" id="{}"></cms-plugin> to go to link1.</p>' ).format(child1.pk) parent.body = parent_body parent.save() plugin = self._export_page()[0]['plugins'][0] result, children_included_in_this_content = TextPlugin.get_translation_export_content( 'body', plugin['data']) expected = (parent_body.replace('></cms-plugin>', '>CLICK ON LINK1</cms-plugin>', 1)) self.assertEquals(result, expected) self.assertEquals(children_included_in_this_content, [child1.pk]) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {child1.pk: 'CLICK ON LINK1'})
def test_textfield_with_multiple_children_one_deleted(self): parent = add_plugin(self.placeholder, 'TextPlugin', 'en', body='') child1 = add_plugin(self.placeholder, 'DummyLinkPlugin', 'en', target=parent, label='CLICK ON LINK1') child2 = add_plugin(self.placeholder, 'DummyLinkPlugin', 'en', target=parent, label='CLICK ON LINK2') parent_body = ( '<p>Please <cms-plugin alt="Dummy Link Plugin - dummy link object "' 'title="Dummy Link Plugin - dummy link object" id="{}"></cms-plugin> to go to link1 ' 'or <cms-plugin alt="Dummy Link Plugin - dummy link object "' 'title="Dummy Link Plugin - dummy link object" id="{}"></cms-plugin> to go to link2.</p>' ).format(child1.pk, child2.pk) parent.body = parent_body parent.save() plugin = self._export_page()[0]['plugins'][0] child1.delete() result, children_included_in_this_content = TextPlugin.get_translation_export_content('body', plugin['data']) expected = ( '<p>Please to go to link1 ' 'or <cms-plugin alt="Dummy Link Plugin - dummy link object "' 'title="Dummy Link Plugin - dummy link object" id="{}">CLICK ON LINK2</cms-plugin> to go to link2.</p>' ).format(child2.pk) self.assertEquals(result, expected) self.assertEquals(children_included_in_this_content, [child2.pk]) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {child2.pk: 'CLICK ON LINK2'})
def test_textfield_without_children(self): raw_content = '<p>Please <a href="http://www.google.com">CLICK ON LINK1</a> to go to link1.</p>' add_plugin(self.placeholder, 'TextPlugin', 'en', body=raw_content) plugin = self._export_page()[0]['plugins'][0] result, children_included_in_this_content = TextPlugin.get_translation_export_content('body', plugin['data']) self.assertEquals(result, raw_content) self.assertEquals(children_included_in_this_content, []) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {})
def test_textfield_without_children(self): raw_content = '<p>Please <a href="http://www.google.com">CLICK ON LINK1</a> to go to link1.</p>' add_plugin(self.placeholder, 'TextPlugin', 'en', body=raw_content) plugin = self._export_page()[0]['plugins'][0] result, children_included_in_this_content = TextPlugin.get_translation_export_content('body', plugin['data']) self.assertEquals(result, raw_content) self.assertEquals(children_included_in_this_content, []) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {})
def test_copy_plugin_callback(self): simple_page = create_page('test page', 'page.html', u'en') simple_placeholder = get_page_placeholders(simple_page, 'en').get(slot='content') text_plugin_1 = self._add_text_plugin(simple_placeholder) child_plugin_1_a = self._add_child_plugin( text_plugin_1, plugin_type='LinkPlugin', ) text_plugin_1 = self.add_plugin_to_text(text_plugin_1, child_plugin_1_a) child_plugin_1_b = self._add_child_plugin( text_plugin_1, plugin_type='LinkPlugin', ) text_plugin_1 = self.add_plugin_to_text(text_plugin_1, child_plugin_1_b) text_plugin_2 = copy.copy(text_plugin_1) text_plugin_2.pk = None text_plugin_2.save() child_plugin_2_a = self._add_child_plugin( text_plugin_2, plugin_type='LinkPlugin', ) child_plugin_2_b = self._add_child_plugin( text_plugin_2, plugin_type='LinkPlugin', ) source_map = { child_plugin_1_a.pk: child_plugin_2_a, child_plugin_1_b.pk: child_plugin_2_b, } TextPlugin.do_post_copy(text_plugin_2, source_map) text_plugin_2.refresh_from_db() idlist = sorted(plugin_tags_to_id_list(text_plugin_2.body)) expected = sorted([child_plugin_2_a.pk, child_plugin_2_b.pk]) self.assertEqual(idlist, expected)
def test_copy_plugin_callback(self): simple_page = create_page('test page', 'page.html', u'en') simple_placeholder = simple_page.placeholders.get(slot='content') text_plugin_1 = self._add_text_plugin(simple_placeholder) child_plugin_1_a = self._add_child_plugin( text_plugin_1, plugin_type='LinkPlugin', ) text_plugin_1 = self.add_plugin_to_text(text_plugin_1, child_plugin_1_a) child_plugin_1_b = self._add_child_plugin( text_plugin_1, plugin_type='LinkPlugin', ) text_plugin_1 = self.add_plugin_to_text(text_plugin_1, child_plugin_1_b) text_plugin_2 = copy.copy(text_plugin_1) text_plugin_2.pk = None text_plugin_2.save() child_plugin_2_a = self._add_child_plugin( text_plugin_2, plugin_type='LinkPlugin', ) child_plugin_2_b = self._add_child_plugin( text_plugin_2, plugin_type='LinkPlugin', ) source_map = { child_plugin_1_a.pk: child_plugin_2_a, child_plugin_1_b.pk: child_plugin_2_b, } TextPlugin.do_post_copy(text_plugin_2, source_map) text_plugin_2.refresh_from_db() idlist = sorted(plugin_tags_to_id_list(text_plugin_2.body)) expected = sorted([child_plugin_2_a.pk, child_plugin_2_b.pk]) self.assertEqual(idlist, expected)
def test_textfield_with_untranslatable_children(self): parent = add_plugin(self.placeholder, 'TextPlugin', 'en', body='') child1 = add_plugin(self.placeholder, 'DummySpacerPlugin', 'en', target=parent) parent_body = ( '<p>This is cool <cms-plugin alt="Dummy Spacer Plugin - dummy spacer object "' 'title="Dummy Spacer Plugin - dummy spacer object" id="{}"></cms-plugin> this is nice</p>' ).format(child1.pk) parent.body = parent_body parent.save() plugin = self._export_page()[0]['plugins'][0] result, children_included_in_this_content = TextPlugin.get_translation_export_content('body', plugin['data']) expected = ( parent_body ) self.assertEquals(result, expected) self.assertEquals(children_included_in_this_content, [child1.pk]) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {child1.pk: ''})
def test_textfield_with_untranslatable_children(self): parent = add_plugin(self.placeholder, 'TextPlugin', 'en', body='') child1 = add_plugin(self.placeholder, 'DummySpacerPlugin', 'en', target=parent) parent_body = ( '<p>This is cool <cms-plugin alt="Dummy Spacer Plugin - dummy spacer object "' 'title="Dummy Spacer Plugin - dummy spacer object" id="{}"></cms-plugin> this is nice</p>' ).format(child1.pk) parent.body = parent_body parent.save() plugin = self._export_page()[0]['plugins'][0] result, children_included_in_this_content = TextPlugin.get_translation_export_content('body', plugin['data']) expected = ( parent_body ) self.assertEquals(result, expected) self.assertEquals(children_included_in_this_content, [child1.pk]) result = TextPlugin.set_translation_import_content(result, plugin) self.assertDictEqual(result, {child1.pk: ''})