test_text_file.py (2752B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_text_file.py 2 import os 3 import unittest 4 from distutils.text_file import TextFile 5 from distutils.tests import support 6 TEST_DATA = '# test file\n\nline 3 \\\n# intervening comment\n continues on next line\n' 7 8 class TextFileTestCase(support.TempdirManager, unittest.TestCase): 9 10 def test_class(self): 11 result1 = ['# test file\n', 12 '\n', 13 'line 3 \\\n', 14 '# intervening comment\n', 15 ' continues on next line\n'] 16 result2 = ['\n', 'line 3 \\\n', ' continues on next line\n'] 17 result3 = ['# test file\n', 18 'line 3 \\\n', 19 '# intervening comment\n', 20 ' continues on next line\n'] 21 result4 = ['line 3 \\', ' continues on next line'] 22 result5 = ['line 3 continues on next line'] 23 result6 = ['line 3 continues on next line'] 24 25 def test_input(count, description, file, expected_result): 26 result = file.readlines() 27 self.assertEqual(result, expected_result) 28 29 tmpdir = self.mkdtemp() 30 filename = os.path.join(tmpdir, 'test.txt') 31 out_file = open(filename, 'w') 32 try: 33 out_file.write(TEST_DATA) 34 finally: 35 out_file.close() 36 37 in_file = TextFile(filename, strip_comments=0, skip_blanks=0, lstrip_ws=0, rstrip_ws=0) 38 try: 39 test_input(1, 'no processing', in_file, result1) 40 finally: 41 in_file.close() 42 43 in_file = TextFile(filename, strip_comments=1, skip_blanks=0, lstrip_ws=0, rstrip_ws=0) 44 try: 45 test_input(2, 'strip comments', in_file, result2) 46 finally: 47 in_file.close() 48 49 in_file = TextFile(filename, strip_comments=0, skip_blanks=1, lstrip_ws=0, rstrip_ws=0) 50 try: 51 test_input(3, 'strip blanks', in_file, result3) 52 finally: 53 in_file.close() 54 55 in_file = TextFile(filename) 56 try: 57 test_input(4, 'default processing', in_file, result4) 58 finally: 59 in_file.close() 60 61 in_file = TextFile(filename, strip_comments=1, skip_blanks=1, join_lines=1, rstrip_ws=1) 62 try: 63 test_input(5, 'join lines without collapsing', in_file, result5) 64 finally: 65 in_file.close() 66 67 in_file = TextFile(filename, strip_comments=1, skip_blanks=1, join_lines=1, rstrip_ws=1, collapse_join=1) 68 try: 69 test_input(6, 'join lines with collapsing', in_file, result6) 70 finally: 71 in_file.close() 72 73 74 def test_suite(): 75 return unittest.makeSuite(TextFileTestCase) 76 77 78 if __name__ == '__main__': 79 unittest.main(defaultTest='test_suite')