def test_parse_multiple_start_lines_with_end_lines(self): change_note = "# {0}\r\nfoo\r\n\r\n# {0}\r\nbar\r\n\r\nincluded\r\n\r\n# not included".format( self.title ) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ["foo", "bar", "included"])
def test_parse_multi_level_indent(self): change_note = "# {0}\r\nfoo \r\n bar \r\n baz \r\n".format( self.title ) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ["foo", " bar", " baz"])
def test_render_subheadings(self): parser = ChangeNotesLinesParser(None, self.title) parser.h2 = {"Subheading": ["foo"]} self.assertEqual( parser.render(), "# {}\r\n\r\n\r\n## Subheading\r\n\r\nfoo".format(self.title), )
def test_render_multiple_content(self): parser = ChangeNotesLinesParser(None, self.title) content = ["foo", "bar"] parser.content = content self.assertEqual( parser.render(), "# {}\r\n\r\n{}".format(self.title, "\r\n".join(content)) )
def test_render_one_content(self): parser = ChangeNotesLinesParser(None, self.title) content = ["foo"] parser.content = content self.assertEqual( parser.render(), "# {}\r\n\r\n{}".format(self.title, content[0]) )
def test_render_multiple_content(self): parser = ChangeNotesLinesParser(None, self.title) content = ['foo', 'bar'] parser.content = content self.assertEqual( parser.render(), '# {}\r\n\r\n{}'.format(self.title, '\r\n'.join(content)))
def test_parse_subheading(self): change_note = "# {0}\r\n## Subheading\r\nfoo".format(self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual([], parser.content) self.assertEqual({"Subheading": ["foo"]}, parser.h2) self.assertTrue(line_added)
def _init_parsers(self): self.parsers.append(ChangeNotesLinesParser( self, 'Critical Changes', )) self.parsers.append(ChangeNotesLinesParser(self, 'Changes')) self.parsers.append(GithubIssuesParser(self, 'Issues Closed'))
def test_parse_start_line_end_at_header(self): change_note = "# {}\r\nfoo\r\n# Another Header\r\nbar".format( self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual(parser.content, ["foo"]) self.assertTrue(line_added)
def test_render_multiple_content(self): parser = ChangeNotesLinesParser(None, self.title) content = ["foo", "bar"] parser.content = content self.assertEqual( parser.render(), "# {}\r\n\r\n{}".format(self.title, "\r\n".join(content)))
def test_parse_multiple_start_lines_with_end_lines(self): change_note = "# {0}\r\nfoo\r\n\r\n# {0}\r\nbar\r\n\r\nincluded\r\n\r\n# not included".format( self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual(parser.content, ["foo", "bar", "included"]) self.assertTrue(line_added)
def test_parse_multi_level_indent(self): change_note = "# {0}\r\nfoo \r\n bar \r\n baz \r\n".format( self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual(parser.content, ["foo", " bar", " baz"]) self.assertTrue(line_added)
def test_parse_subheading_from_another_section(self): change_note = "## Subheading\r\n# {0}\r\nfoo".format(self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual(["foo"], parser.content) self.assertEqual({}, parser.h2) self.assertTrue(line_added)
def test_render_no_content(self): parser = ChangeNotesLinesParser(None, self.title) self.assertEqual(parser.render(), None)
def _init_parsers(self): self.parsers.append(ChangeNotesLinesParser(self, "Critical Changes")) self.parsers.append(ChangeNotesLinesParser(self, "Changes")) self.parsers.append(IssuesParser(self, "Issues Closed"))
def test_parse_multi_level_indent(self): change_note = '# {0}\r\nfoo \r\n bar \r\n baz \r\n'.format( self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ['foo', ' bar', ' baz'])
def test_parse_multiple_start_lines_with_end_lines(self): change_note = '# {0}\r\nfoo\r\n\r\n# {0}\r\nbar\r\n\r\nincluded\r\n\r\n# not included'.format( self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ['foo', 'bar', 'included'])
def test_parse_start_line_end_at_header(self): change_note = "# {}\r\nfoo\r\n# Another Header\r\nbar".format(self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ["foo"])
def test_parse_start_line_no_content_no_end_line(self): change_note = "# {}".format(self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, [])
def test_parse_no_start_line(self): change_note = "foo\r\nbar\r\n" parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, [])
def test_parse_start_line_no_content(self): change_note = "# {}\r\n\r\n".format(self.title) parser = ChangeNotesLinesParser(None, self.title) line_added = parser.parse(change_note) self.assertEqual(parser.content, []) self.assertFalse(line_added)
def test_parse_subheading(self): change_note = "# {0}\r\n## Subheading\r\nfoo".format(self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual([], parser.content) self.assertEqual({"Subheading": ["foo"]}, parser.h2)
def test_parse_start_line_no_end_line(self): change_note = "# {}\r\nfoo\r\nbar".format(self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ["foo", "bar"])
def test_parse_start_line_end_at_header(self): change_note = '# {}\r\nfoo\r\n# Another Header\r\nbar'.format( self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ['foo'])
def test_parse_multiple_start_lines_without_end_lines(self): change_note = "# {0}\r\nfoo\r\n# {0}\r\nbar\r\n".format(self.title) parser = ChangeNotesLinesParser(None, self.title) parser.parse(change_note) self.assertEqual(parser.content, ["foo", "bar"])