def compare_encoding(self, filename, content, file_encoding, expected, bfr=False): """Compare encoding.""" if not bfr: self.mktemp(filename, content=content) name = self.norm(filename) size = os.path.getsize(name) else: name = filename size = None if not bfr: rfc = rc._RummageFileContent(name, size, file_encoding) else: rfc = rc._RummageFileContent(name, size, file_encoding, content) with rfc as f: text = f[:] if not bfr: if expected.startswith('utf-8'): enc = 'utf-8-sig' elif expected.startswith('utf-32'): enc = 'utf-32' elif expected.startswith('utf-16'): enc = 'utf-16' else: enc = expected if enc == 'bin': with open(name, 'rb') as f: text2 = f.read() else: with codecs.open(name, 'r', encoding=enc) as f: text2 = f.read() else: text2 = content self.assertEqual(rfc.encoding.encode, expected) self.assertEqual(text, text2)
def test_bin_rummageexception(self): """Test `RummageException` with a bin file.""" rfc = rc._RummageFileContent(self.norm('does_not_exist.txt'), 10, td.Encoding('bin', None)) self.assertRaises(rc.RummageException, rfc.__enter__)