maint: format code using black
[git-cola.git] / test / core_test.py
blob9c05e25c2bb2e9039ed2c715c19af85986a121ce
1 #!/usr/bin/env python
2 # encoding: utf-8
3 from __future__ import absolute_import, division, unicode_literals
4 import unittest
6 from cola import core
8 from . import helper
11 class CoreColaUnicodeTestCase(unittest.TestCase):
12 """Tests the cola.core module's unicode handling"""
14 def test_core_decode(self):
15 """Test the core.decode function"""
16 filename = helper.fixture('unicode.txt')
17 expect = core.decode(core.encode('unicøde'))
18 actual = core.read(filename).strip()
19 self.assertEqual(expect, actual)
21 def test_core_encode(self):
22 """Test the core.encode function"""
23 filename = helper.fixture('unicode.txt')
24 expect = core.encode('unicøde')
25 actual = core.encode(core.read(filename).strip())
26 self.assertEqual(expect, actual)
28 def test_decode_None(self):
29 """Ensure that decode(None) returns None"""
30 expect = None
31 actual = core.decode(None)
32 self.assertEqual(expect, actual)
34 def test_decode_utf8(self):
35 filename = helper.fixture('cyrillic-utf-8.txt')
36 actual = core.read(filename)
37 self.assertEqual(actual.encoding, 'utf-8')
39 def test_decode_non_utf8(self):
40 filename = helper.fixture('cyrillic-cp1251.txt')
41 actual = core.read(filename)
42 self.assertEqual(actual.encoding, 'iso-8859-15')
44 def test_decode_non_utf8_string(self):
45 filename = helper.fixture('cyrillic-cp1251.txt')
46 with open(filename, 'rb') as f:
47 content = f.read()
48 actual = core.decode(content)
49 self.assertEqual(actual.encoding, 'iso-8859-15')
51 def test_guess_mimetype(self):
52 value = '字龍.txt'
53 expect = 'text/plain'
54 actual = core.guess_mimetype(value)
55 self.assertEqual(expect, actual)
56 # This function is robust to bytes vs. unicode
57 actual = core.guess_mimetype(core.encode(value))
58 self.assertEqual(expect, actual)
61 if __name__ == '__main__':
62 unittest.main()