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_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))