def test_renders_markdown_readme(self): readme = Readme("This is a *<README>*.", "README.md") self.assertEqual("<p>This is a <em><README></em>.</p>", readme.render()) readme = Readme("This is a *<README>*.", "readme.MD") self.assertEqual("<p>This is a <em><README></em>.</p>", readme.render())
def assert_extracts_readme(self, chosen, names=None, pattern=None): """Assert that the given README is extracted from an archive. If no names are passed, creates an archive with a single README. If no pattern is passed, the pattern default is 'README'.""" archive = self.readme_archive(*(names or [chosen])) if pattern: readme = Readme.from_archive(archive, pattern) else: readme = Readme.from_archive(archive) self.assertIsNotNone(readme) self.assertEqual('This is a README named "%s".' % chosen, readme.text) self.assertEqual(chosen, readme.filename)
def test_infers_format_from_filename(self): readme = Readme("This is a README.", "README") self.assertEqual(Readme.Format.TEXT, readme.format) readme = Readme("This is a README.", "README.md") self.assertEqual(Readme.Format.MARKDOWN, readme.format) readme = Readme("This is a README.", "README.jp.md") self.assertEqual(Readme.Format.MARKDOWN, readme.format) readme = Readme("This is a README.", "README.md.jp") self.assertEqual(Readme.Format.TEXT, readme.format) readme = Readme("This is a CHANGELOG.", "CHANGELOG") self.assertEqual(Readme.Format.TEXT, readme.format) readme = Readme("This is a CHANGELOG.", "CHANGELOG.md") self.assertEqual(Readme.Format.MARKDOWN, readme.format) readme = Readme("This is a CHANGELOG.", "CHANGELOG.fr.md") self.assertEqual(Readme.Format.MARKDOWN, readme.format) readme = Readme("This is a CHANGELOG.", "CHANGELOG.md.fr") self.assertEqual(Readme.Format.TEXT, readme.format)
def test_wraps_plain_text_readme_in_pre(self): readme = Readme("This is a *<README>*.", "README") self.assertEqual("<pre>This is a *<README>*.</pre>", readme.render())
def test_tries_to_decode_invalid_utf_8(self): archive = self.archive({'README': 'This is a R\300ADM\300.'}) readme = Readme.from_archive(archive) self.assertEqual(u'This is a R�ADM�.', readme.text)
def test_decodes_valid_utf_8(self): archive = self.archive({'README': 'This is a R\303\213ADM\303\213.'}) readme = Readme.from_archive(archive) self.assertEqual(u'This is a RËADMË.', readme.text)
def test_doesnt_extract_prefixed_readme(self): archive = self.readme_archive("NOT_README") self.assertIsNone(Readme.from_archive(archive))