def test_replace_html_attrs(self): segment = StringSegmentValue.from_html( "foo.bar", 'This is some text. <foo> <b>Bold text</b> <a id="a1">A link and some more <b>Bold text</b></a>', ) segment.attrs = {"a1": {"href": "http://changed-example.com"}} self.assertEqual( segment.render_html(), 'This is some text. <foo> <b>Bold text</b> <a href="http://changed-example.com">A link and some more <b>Bold text</b></a>', )
def test_segment_value(self): segment = StringSegmentValue.from_html( "foo.bar", 'This is some text. <foo> <b>Bold text</b> <a href="http://example.com">A link and some more <b>Bold text</b></a>', ) self.assertEqual(segment.path, "foo.bar") self.assertEqual(segment.order, 0) self.assertEqual(segment.attrs, {"a1": {"href": "http://example.com"}}) self.assertEqual( segment.render_text(), "This is some text. <foo> Bold text A link and some more Bold text", ) self.assertEqual( segment.render_html(), 'This is some text. <foo> <b>Bold text</b> <a href="http://example.com">A link and some more <b>Bold text</b></a>', ) # .with_order() orderred = segment.with_order(123) self.assertEqual(segment.order, 0) self.assertEqual(orderred.order, 123) self.assertEqual(orderred.path, "foo.bar") self.assertEqual(orderred.string, segment.string) self.assertEqual(orderred.attrs, segment.attrs) # .wrap() wrapped = segment.wrap("baz") self.assertEqual(segment.path, "foo.bar") self.assertEqual(wrapped.path, "baz.foo.bar") self.assertEqual(wrapped.order, segment.order) self.assertEqual(wrapped.string, segment.string) self.assertEqual(wrapped.attrs, segment.attrs) # .unwrap() path_component, unwrapped = segment.unwrap() self.assertEqual(segment.path, "foo.bar") self.assertEqual(path_component, "foo") self.assertEqual(unwrapped.path, "bar") self.assertEqual(unwrapped.order, segment.order) self.assertEqual(unwrapped.string, segment.string) self.assertEqual(unwrapped.attrs, segment.attrs)
kwargs.setdefault("title", "Test page") return root_page.add_child(instance=TestPage(**kwargs)) RICH_TEXT_TEST_INPUT = '<h1>This is a heading</h1><p>This is a paragraph. <foo> <b>Bold text</b></p><ul><li><a href="http://example.com">This is a link</a>.</li></ul>' RICH_TEXT_TEST_OUTPUT = [ TemplateSegmentValue( "", "html", '<h1><text position="0"></text></h1><p><text position="1"></text></p><ul><li><text position="2"></text></li></ul>', 3, ), StringSegmentValue("", "This is a heading"), StringSegmentValue.from_html( "", 'This is a paragraph. <foo> <b>Bold text</b>', ), StringSegmentValue( "", StringValue('<a id="a1">This is a link</a>.'), attrs={ "a1": {"href": "http://example.com"} } ), ] class TestSegmentExtraction(TestCase): def test_charfield(self): page = make_test_page(test_charfield="Test content") segments = extract_segments(page)
RICH_TEXT_TEST_INPUT = '<h1>This is a heading</h1><p>This is a paragraph. <foo> <b>Bold text</b></p><ul><li><a href="http://example.com">This is a link</a></li></ul>' RICH_TEXT_TEST_FRENCH_SEGMENTS = [ TemplateSegmentValue( "", "html", '<h1><text position="0"></text></h1><p><text position="1"></text></p><ul><li><text position="2"></text></li></ul>', 3, order=9, ), StringSegmentValue("", "Ceci est une rubrique", order=10), StringSegmentValue.from_html( "", 'Ceci est un paragraphe. <foo> <b>Texte en gras</b>', order=11, ), StringSegmentValue( "", StringValue('<a id="a1">Ceci est un lien</a>'), attrs={"a1": { "href": "http://example.com" }}, order=12, ), ] RICH_TEXT_TEST_OUTPUT = '<h1>Ceci est une rubrique</h1><p>Ceci est un paragraphe. <foo> <b>Texte en gras</b></p><ul><li><a href="http://example.com">Ceci est un lien</a></li></ul>'