# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. import sys from unittest import TestCase, main from ..ansi import Back, Fore, Style from ..ansitowin32 import AnsiToWin32 stdout_orig = sys.stdout stderr_orig = sys.stderr class AnsiTest(TestCase): def setUp(self): # sanity check: stdout should be a file or StringIO object. # It will only be AnsiToWin32 if init() has previously wrapped it self.assertNotEqual(type(sys.stdout), AnsiToWin32) self.assertNotEqual(type(sys.stderr), AnsiToWin32) def tearDown(self): sys.stdout = stdout_orig sys.stderr = stderr_orig def testForeAttributes(self): self.assertEqual(Fore.BLACK, '\033[30m') self.assertEqual(Fore.RED, '\033[31m') self.assertEqual(Fore.GREEN, '\033[32m') self.assertEqual(Fore.YELLOW, '\033[33m') self.assertEqual(Fore.BLUE, '\033[34m') self.assertEqual(Fore.MAGENTA, '\033[35m') self.assertEqual(Fore.CYAN, '\033[36m') self.assertEqual(Fore.WHITE, '\033[37m') self.assertEqual(Fore.RESET, '\033[39m') # Check the light, extended versions. self.assertEqual(Fore.LIGHTBLACK_EX, '\033[90m') self.assertEqual(Fore.LIGHTRED_EX, '\033[91m') self.assertEqual(Fore.LIGHTGREEN_EX, '\033[92m') self.assertEqual(Fore.LIGHTYELLOW_EX, '\033[93m') self.assertEqual(Fore.LIGHTBLUE_EX, '\033[94m') self.assertEqual(Fore.LIGHTMAGENTA_EX, '\033[95m') self.assertEqual(Fore.LIGHTCYAN_EX, '\033[96m') self.assertEqual(Fore.LIGHTWHITE_EX, '\033[97m') def testBackAttributes(self): self.assertEqual(Back.BLACK, '\033[40m') self.assertEqual(Back.RED, '\033[41m') self.assertEqual(Back.GREEN, '\033[42m') self.assertEqual(Back.YELLOW, '\033[43m') self.assertEqual(Back.BLUE, '\033[44m') self.assertEqual(Back.MAGENTA, '\033[45m') self.assertEqual(Back.CYAN, '\033[46m') self.assertEqual(Back.WHITE, '\033[47m') self.assertEqual(Back.RESET, '\033[49m') # Check the light, extended versions. self.assertEqual(Back.LIGHTBLACK_EX, '\033[100m') self.assertEqual(Back.LIGHTRED_EX, '\033[101m') self.assertEqual(Back.LIGHTGREEN_EX, '\033[102m') self.assertEqual(Back.LIGHTYELLOW_EX, '\033[103m') self.assertEqual(Back.LIGHTBLUE_EX, '\033[104m') self.assertEqual(Back.LIGHTMAGENTA_EX, '\033[105m') self.assertEqual(Back.LIGHTCYAN_EX, '\033[106m') self.assertEqual(Back.LIGHTWHITE_EX, '\033[107m') def testStyleAttributes(self): self.assertEqual(Style.DIM, '\033[2m') self.assertEqual(Style.NORMAL, '\033[22m') self.assertEqual(Style.BRIGHT, '\033[1m') if __name__ == '__main__': main()