diff options
author | Leonard Richardson <leonardr@segfault.org> | 2019-07-21 14:58:16 -0400 |
---|---|---|
committer | Leonard Richardson <leonardr@segfault.org> | 2019-07-21 14:58:16 -0400 |
commit | b2294f4f05d9e8583613560986f8aa64b18866b9 (patch) | |
tree | 5af13a59eca15ea082cb46ea286bc9c5b91996da /bs4/tests/test_htmlparser.py | |
parent | 819fa4255063d6b8d16f62469afa6c6e504f284a (diff) |
Adapt Chris Mayo's code to track line number and position when using html.parser.
Diffstat (limited to 'bs4/tests/test_htmlparser.py')
-rw-r--r-- | bs4/tests/test_htmlparser.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bs4/tests/test_htmlparser.py b/bs4/tests/test_htmlparser.py index 790489a..c6a6691 100644 --- a/bs4/tests/test_htmlparser.py +++ b/bs4/tests/test_htmlparser.py @@ -37,6 +37,17 @@ class HTMLParserTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest): # finishes working is handled. self.assertSoupEquals("foo &# bar", "foo &# bar") + def test_tracking_line_numbers(self): + # Unlike other TreeBuilders, the html.parser TreeBuilder + # keeps track of line number and position of each element. + soup = self.soup( + "\n <p>\n\n<lineno>\n<b>text</b></lineno><offset></p>", + store_line_numbers=True + ) + self.assertEqual(2, soup.p.lineno) + self.assertEqual(3, soup.p.offset) + self.assertEqual("lineno", soup.p.find('lineno').name) + class TestHTMLParserSubclass(SoupTest): def test_error(self): |