def modify(self, text): """Converts any horizontal rule variation to the version defined in the settings file. A horizontal rule is defined by three or more hyphens, asterisks, or underscores with optional spaces in between. """ horizontal_rule = pretty_markdown.settings().get('horizontal_rule_style') return horizontal_rule_utils.convert_horizontal_rules(text, horizontal_rule)
def test_convertHorizontalRules_fromAsterisksWithSpaces(self): text = '* * *' rule = '---' expected = '---' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_convertHorizontalRules_fromUnderscoresWithSpaces(self): text = '_ _ _' rule = '---' expected = '---' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_convertHorizontalRules_setextH2HeaderFollowedByMultipleRules_allOnNewLines(self): text = 'Header\n---\n\n---\n\n---' rule = '***' expected = 'Header\n---\n\n***\n\n***' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_convertHorizontalRules_removeSpaces(self): text = '- - - -' rule = '---' expected = '---' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_convertHorizontalRules_multipleRules_allOnNewLines(self): text = '---\n\n***\n\n___\n\n* * *' rule = '***' expected = '***\n\n***\n\n***\n\n***' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_convertHorizontalRules_setextHeader(self): text = 'Header\n------' rule = '---' expected = 'Header\n------' actual = horizontal_rule_utils.convert_horizontal_rules(text, rule) self.assertEqual(actual, expected)
def test_cleanToClean(self): with open(CLEAN_FILE_PATH) as clean_file: expected = clean_file.read() actual = bold_utils.convert_bolds(expected) actual = header_utils.fix_header_balancing(actual) actual = horizontal_rule_utils.convert_horizontal_rules(actual) actual = italic_utils.convert_italics(actual) actual = link_utils.discover_missing_links(actual) actual = link_utils.format_link_reference_definitions(actual) actual = list_utils.alternate_unordered_list_delimiters(actual) actual = list_utils.fix_ordered_list_numbering(actual) actual = whitespace_utils.trim_nonbreaking_whitespace(actual) self.assertEqual(actual, expected)
def test_dirtyToClean_atx_unbalanced(self): with open(DIRTY_FILE_PATH) as dirty_file: text = dirty_file.read() with open(CLEAN_ANY_HEADER_UNBALANCED_FILE_PATH) as clean_file: expected = clean_file.read() actual = bold_utils.convert_bolds(text) actual = header_utils.fix_header_balancing(actual, balancing=header_utils.UNBALANCED) actual = horizontal_rule_utils.convert_horizontal_rules(actual) actual = italic_utils.convert_italics(actual) actual = link_utils.discover_missing_links(actual) actual = link_utils.format_link_reference_definitions(actual) actual = list_utils.alternate_unordered_list_delimiters(actual) actual = list_utils.fix_ordered_list_numbering(actual) actual = whitespace_utils.trim_nonbreaking_whitespace(actual) self.assertEqual(actual, expected)
def test_convertHorizontalRules_invalidHorizontalRule(self): with self.assertRaisesRegex(AssertionError, 'A horizontal rule is defined by three or more hyphens, asterisks, or underscores with optional spaces in between.'): horizontal_rule_utils.convert_horizontal_rules('', 'mmm')