Commit 6e0106ca authored by Guido van Rossum's avatar Guido van Rossum

Refactor the testcase class a bit along to allow for prologue and

epilogue and initial and final events.  (This is not used anywhere but
I thought it was neat, and it matches what I did in
test_htmltalparser.py.)
parent 20c10a5c
......@@ -69,17 +69,28 @@ class EventCollectorExtra(EventCollector):
EventCollector.handle_starttag(self, tag, attrs)
self.append(("starttag_text", self.get_starttag_text()))
class HTMLParserTestCase(unittest.TestCase):
class TestCaseBase(unittest.TestCase):
# Constant pieces of source and events
prologue = ""
epilogue = ""
initial_events = []
final_events = []
def _run_check(self, source, events, collector=EventCollector):
parser = collector()
parser.feed(self.prologue)
if isinstance(source, type([])):
for s in source:
parser.feed(s)
else:
parser.feed(source)
parser.feed(self.epilogue)
parser.close()
self.assert_(parser.get_events() == events, parser.get_events())
self.assert_(parser.get_events() ==
self.initial_events + events + self.final_events,
parser.get_events())
def _run_check_extra(self, source, events):
self._run_check(source, events, EventCollectorExtra)
......@@ -91,6 +102,9 @@ class HTMLParserTestCase(unittest.TestCase):
parser.close()
self.assertRaises(HTMLParser.HTMLParseError, parse)
class HTMLParserTestCase(TestCaseBase):
def check_processing_instruction_only(self):
self._run_check("<?processing instruction>", [
("pi", "processing instruction"),
......
......@@ -69,17 +69,28 @@ class EventCollectorExtra(EventCollector):
EventCollector.handle_starttag(self, tag, attrs)
self.append(("starttag_text", self.get_starttag_text()))
class HTMLParserTestCase(unittest.TestCase):
class TestCaseBase(unittest.TestCase):
# Constant pieces of source and events
prologue = ""
epilogue = ""
initial_events = []
final_events = []
def _run_check(self, source, events, collector=EventCollector):
parser = collector()
parser.feed(self.prologue)
if isinstance(source, type([])):
for s in source:
parser.feed(s)
else:
parser.feed(source)
parser.feed(self.epilogue)
parser.close()
self.assert_(parser.get_events() == events, parser.get_events())
self.assert_(parser.get_events() ==
self.initial_events + events + self.final_events,
parser.get_events())
def _run_check_extra(self, source, events):
self._run_check(source, events, EventCollectorExtra)
......@@ -91,6 +102,9 @@ class HTMLParserTestCase(unittest.TestCase):
parser.close()
self.assertRaises(HTMLParser.HTMLParseError, parse)
class HTMLParserTestCase(TestCaseBase):
def check_processing_instruction_only(self):
self._run_check("<?processing instruction>", [
("pi", "processing instruction"),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment