# paperdoorknob: Print glowfic
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, version 3.
import unittest
from bs4 import BeautifulSoup
from domfilter import ApplyDOMFilters
class TestDOMFilters(unittest.TestCase):
def setUp(self) -> None:
self._html = BeautifulSoup(b'''
This is the edit box
This is glowfic
''', 'html.parser')
self._strike = BeautifulSoup(b'''
Abandon hope and endure.
No. Win.
''', '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__':
unittest.main()