import codetable import unittest class TestCodetable(unittest.TestCase): def setUp(self): self.debug = True print("") print("---------------------------") print("test method: %s" % self._testMethodName) def test_scr2chr_ok1(self): """ Screencodes 0 bis 63 mit Zeichensatz 1 """ # Grossbuchstaben: SCRCODE 0-31 -> ASCII 64-95 for i in range(32): if i in (28, 31): # Pfundzeichen und Pfeil links ueberspringen continue res = codetable.scr2chr(i, 1) if self.debug: print(res, end='') self.assertEqual(res, chr(64+i)) if self.debug: print('') # Ziffern usw.: SCRCODE 32-63 -> ASCII 32-63 for i in range(32, 64): res = codetable.scr2chr(i, 1) if self.debug: print(res, end='') self.assertEqual(res, chr(i)) if self.debug: print('') def test_scr2chr_ok2(self): """ Screencodes 0 bis 91 mit Zeichensatz 2 """ # AT-Zeichen: SCRCODE 0 -> ASCII 64 res = codetable.scr2chr(0, 2) if self.debug: print(res) self.assertEqual(res, chr(64)) # Kleinbuchstaben: SCRCODE 1-26 -> ASCII 97-122 for i in range(1, 27): res = codetable.scr2chr(i, 2) if self.debug: print(res, end='') self.assertEqual(res, chr(i+96)) if self.debug: print('') # []^: SCRCODE 27-31 (ohne 28 und 31) -> ASCII 91-95 for i in (27, 29, 30): res = codetable.scr2chr(i, 2) if self.debug: print(res, end='') self.assertEqual(res, chr(i+64)) if self.debug: print('') # Ziffern usw.: SCRCODE 32-63 -> ASCII 32-63 for i in range(32, 64): res = codetable.scr2chr(i, 1) if self.debug: print(res, end='') self.assertEqual(res, chr(i)) if self.debug: print('') # Grossbuchstaben: SCRCODE 65-90 -> ASCII 65-90 for i in range(65, 91): res = codetable.scr2chr(i, 2) if self.debug: print(res, end='') self.assertEqual(res, chr(i)) if self.debug: print('') def test_scr2chr_err1(self): """ Nicht unterstuetzte Zeichen """ errch = chr(27)+"[7m"+"?"+chr(27)+"[m" res = codetable.scr2chr(64, 1) self.assertEqual(res, errch) res = codetable.scr2chr(96, 2) self.assertEqual(res, errch) def test_scr2chr_err2(self): """ Unzulaessiger font-Parameter """ self.assertRaises(ValueError, codetable.scr2chr, 0, 3) def test_chr2scr_ok1(self): """ ASCII-Codes 32-95 mit Zeichensatz 1, ohne Backslash und Unterstrich, da es fuer diese beiden Zeichen keine passenden Bildschirmcodes gibt. """ # Ziffern usw.: ASCII 32-63 -> SCRCODE 32-63 for i in range(32, 64): res = codetable.chr2scr(chr(i), 1) if self.debug: print(res, end=',') self.assertEqual(res, i) if self.debug: print('') # Grossbuchstaben: ASCII 64-90 -> SCRCODE 0-26 for i in range(64, 91): res = codetable.chr2scr(chr(i), 1) if self.debug: print(res, end=',') self.assertEqual(res, i-64) if self.debug: print('') # []^: ASCII 91, 93, 94 -> SCRCODE 27, 29, 30 for i in [91, 93, 94]: res = codetable.chr2scr(chr(i), 1) if self.debug: print(res, end=',') self.assertEqual(res, i-64) if self.debug: print('') def test_chr2scr_ok2(self): """ ASCII-Codes 32-122 mit Zeichensatz 2, ohne Backslash, Unterstrich und Aszent, da es fuer diese drei Zeichen keine passenden Bildschirmcodes gibt. """ # Ziffern usw.: ASCII 32-63 -> SCRCODE 32-63 for i in range(32,64): res = codetable.chr2scr(chr(i), 2) if self.debug: print(res, end=',') self.assertEqual(res, i) if self.debug: print('') # AT-Zeichen: ASCII 64 -> SCRCODE 0 res = codetable.chr2scr(chr(64), 2) if self.debug: print(res) self.assertEqual(res, 0) # Grossbuchstaben: ASCII 65-90 -> SCRCODE 65-90 for i in range(65, 91): res = codetable.chr2scr(chr(i), 2) if self.debug: print(res, end=',') self.assertEqual(res, i) if self.debug: print('') # []^: ASCII 91, 93, 94 -> SCRCODE 27, 29, 30 for i in [91, 93, 94]: res = codetable.chr2scr(chr(i), 2) if self.debug: print(res, end=',') self.assertEqual(res, i-64) if self.debug: print('') # Kleinbuchstaben: ASCII 97-122 -> SCRCODE 1-26 for i in range(97, 123): res = codetable.chr2scr(chr(i), 2) if self.debug: print(res, end=',') self.assertEqual(res, i-96) if self.debug: print('') def test_chr2scr_err1(self): """ Unzulaessiges Zeichen """ for i in range(32): res = codetable.chr2scr(chr(i), 1) self.assertEqual(res, 255) for i in [92, 95, 96]: res = codetable.chr2scr(chr(i), 2) self.assertEqual(res, 255) def test_chr2scr_err2(self): """ Unzulaessiger font-Parameter """ self.assertRaises(ValueError, codetable.chr2scr, 'a', 3) if __name__ == '__main__': unittest.main()