class TestDOMFilters(unittest.TestCase):
def setUp(self) -> None:
- self._html = BeautifulSoup(b'''
- <div class="post-container post-post">
- <div class="post-edit-box">This is the edit box</div>
- This is glowfic
- <div class="post-footer">This is the footer</div>
+ self._strike = BeautifulSoup(b'''
+ <div class="post-content">
+ <p><span style="text-decoration: line-through;">Abandon hope and endure.</span></p>
+ <p>No. Win.</p>
</div>''', 'html.parser')
- def testStripFooters(self) -> None:
- ApplyDOMFilters("NoFooter", self._html)
- self.assertEqual(list(self._html.stripped_strings),
- ["This is the edit box", "This is glowfic"])
-
- def testStripEditBoxes(self) -> None:
- ApplyDOMFilters("NoEdit", self._html)
- self.assertEqual(list(self._html.stripped_strings),
- ["This is glowfic", "This is the footer"])
-
- def testStripFootersAndEditBoxes(self) -> None:
- ApplyDOMFilters("NoEdit,NoFooter", self._html)
- self.assertEqual(list(self._html.stripped_strings),
- ["This is glowfic"])
+ def testStrike(self) -> None:
+ ApplyDOMFilters('Strike', self._strike)
+ s = self._strike.find_all('s')
+ self.assertEqual(len(s), 1)
+ self.assertEqual(list(s[0].stripped_strings),
+ ['Abandon hope and endure.'])
if __name__ == '__main__':