ProjektAI/kelner/venv/Lib/site-packages/pygame/tests/compat_test.py
2020-03-22 02:01:57 +01:00

88 lines
2.7 KiB
Python

import sys
import unittest
from pygame import compat
encode_file_path = sys.modules['pygame.rwobject'].encode_file_path
class CompatModuleTest(unittest.TestCase):
def test_as_unicode(self):
r = r'Bo\u00F6tes'
ords = [ord('B'), ord('o'), 0xF6, ord('t'), ord('e'), ord('s')]
self.assertEqual(len(r), 11)
u = compat.as_unicode(r)
self.assertIsInstance(u, compat.unicode_)
self.assertEqual([ord(c) for c in u], ords)
def test_as_bytes(self):
ords = [0, 1, 0x7F, 0x80, 0xC3, 0x20, 0xC3, 0xB6, 0xFF]
s = ''.join([chr(i) for i in ords])
self.assertEqual(len(s), len(ords))
b = compat.as_bytes(s)
self.assertIsInstance(b, compat.bytes_)
self.assertEqual([compat.ord_(i) for i in b], ords)
def test_ord_(self):
self.assertIsInstance(compat.ord_(compat.bytes_(1)[0]), int)
def test_bytes_(self):
self.assertFalse(compat.bytes_ is compat.unicode_)
self.assertTrue(hasattr(compat.bytes_, 'capitalize'))
self.assertFalse(hasattr(compat.bytes_, 'isdecimal'))
def test_unicode_(self):
self.assertTrue(hasattr(compat.unicode_(), 'isdecimal'))
def test_long_(self):
self.assertIsInstance(int('99999999999999999999'), compat.long_)
def test_geterror(self):
msg = 'Success'
try:
raise TypeError(msg)
except TypeError:
e = compat.geterror()
self.assertIsInstance(e, TypeError)
self.assertEqual(str(e), msg)
def test_xrange_(self):
self.assertFalse(isinstance(compat.xrange_(2), list))
def test_unichr_(self):
ordval = 86
c = compat.unichr_(ordval)
self.assertIsInstance(c, compat.unicode_)
self.assertEqual(ord(c), ordval)
def test_get_BytesIO(self):
BytesIO = compat.get_BytesIO()
b1 = compat.as_bytes("\x00\xffabc")
b2 = BytesIO(b1).read()
self.assertIsInstance(b2, compat.bytes_)
self.assertEqual(b2, b1)
def test_get_StringIO(self):
StringIO = compat.get_StringIO()
b1 = "abcde"
b2 = StringIO(b1).read()
self.assertIsInstance(b2, str)
self.assertEqual(b2, b1)
def test_raw_input_(self):
StringIO = compat.get_StringIO()
msg = 'success'
tmp = sys.stdin
sys.stdin = StringIO(msg + '\n')
try:
s = compat.raw_input_()
self.assertEqual(s, msg)
finally:
sys.stdin = tmp
def test_filesystem_encode(self):
upath = compat.as_unicode(r"ab\u212Acd")
self.assertEqual(compat.filesystem_encode(upath),
encode_file_path(upath))
if __name__ == '__main__':
unittest.main()