NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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')