From a421a9254e6745eb90573d489f482f3558b4e99c Mon Sep 17 00:00:00 2001 From: Isaac Muse Date: Sun, 30 Dec 2018 22:13:49 -0700 Subject: Add convienances for inserting multiple tags Add extend method to append a list of tags. Make insert_before and insert_after accept multiple arguments --- bs4/tests/test_tree.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'bs4/tests/test_tree.py') diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index f1af6ce..e6c07aa 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -931,6 +931,13 @@ class TestTreeModification(SoupTest): soup.a.append(soup.b) self.assertEqual(data, soup.decode()) + def test_extend(self): + data = "" + soup = self.soup(data) + l = [soup.g, soup.f, soup.e, soup.d, soup.c, soup.b] + soup.a.extend(l) + self.assertEqual("", soup.decode()) + def test_move_tag_to_beginning_of_parent(self): data = "" soup = self.soup(data) @@ -957,6 +964,17 @@ class TestTreeModification(SoupTest): self.assertEqual( soup.decode(), self.document_for("QUUXbarfooBAZ")) + def test_insert_multiple_before(self): + soup = self.soup("foobar") + soup.b.insert_before("BAZ", " ", "QUUX") + soup.a.insert_before("QUUX", " ", "BAZ") + self.assertEqual( + soup.decode(), self.document_for("QUUX BAZfooBAZ QUUXbar")) + + soup.a.insert_before(soup.b, "FOO") + self.assertEqual( + soup.decode(), self.document_for("QUUX BAZbarFOOfooBAZ QUUX")) + def test_insert_after(self): soup = self.soup("foobar") soup.b.insert_after("BAZ") @@ -967,6 +985,16 @@ class TestTreeModification(SoupTest): self.assertEqual( soup.decode(), self.document_for("QUUXbarfooBAZ")) + def test_insert_multiple_after(self): + soup = self.soup("foobar") + soup.b.insert_after("BAZ", " ", "QUUX") + soup.a.insert_after("QUUX", " ", "BAZ") + self.assertEqual( + soup.decode(), self.document_for("fooQUUX BAZbarBAZ QUUX")) + soup.b.insert_after(soup.a, "FOO ") + self.assertEqual( + soup.decode(), self.document_for("QUUX BAZbarfooFOO BAZ QUUX")) + def test_insert_after_raises_exception_if_after_has_no_meaning(self): soup = self.soup("") tag = soup.new_tag("a") -- cgit v1.2.3