+++ /dev/null
-"""Tests for distutils.text_file."""\r
-import os\r
-import unittest\r
-from distutils.text_file import TextFile\r
-from distutils.tests import support\r
-from test.test_support import run_unittest\r
-\r
-TEST_DATA = """# test file\r
-\r
-line 3 \\\r
-# intervening comment\r
- continues on next line\r
-"""\r
-\r
-class TextFileTestCase(support.TempdirManager, unittest.TestCase):\r
-\r
- def test_class(self):\r
- # old tests moved from text_file.__main__\r
- # so they are really called by the buildbots\r
-\r
- # result 1: no fancy options\r
- result1 = ['# test file\n', '\n', 'line 3 \\\n',\r
- '# intervening comment\n',\r
- ' continues on next line\n']\r
-\r
- # result 2: just strip comments\r
- result2 = ["\n",\r
- "line 3 \\\n",\r
- " continues on next line\n"]\r
-\r
- # result 3: just strip blank lines\r
- result3 = ["# test file\n",\r
- "line 3 \\\n",\r
- "# intervening comment\n",\r
- " continues on next line\n"]\r
-\r
- # result 4: default, strip comments, blank lines,\r
- # and trailing whitespace\r
- result4 = ["line 3 \\",\r
- " continues on next line"]\r
-\r
- # result 5: strip comments and blanks, plus join lines (but don't\r
- # "collapse" joined lines\r
- result5 = ["line 3 continues on next line"]\r
-\r
- # result 6: strip comments and blanks, plus join lines (and\r
- # "collapse" joined lines\r
- result6 = ["line 3 continues on next line"]\r
-\r
- def test_input(count, description, file, expected_result):\r
- result = file.readlines()\r
- self.assertEqual(result, expected_result)\r
-\r
- tmpdir = self.mkdtemp()\r
- filename = os.path.join(tmpdir, "test.txt")\r
- out_file = open(filename, "w")\r
- try:\r
- out_file.write(TEST_DATA)\r
- finally:\r
- out_file.close()\r
-\r
- in_file = TextFile(filename, strip_comments=0, skip_blanks=0,\r
- lstrip_ws=0, rstrip_ws=0)\r
- try:\r
- test_input(1, "no processing", in_file, result1)\r
- finally:\r
- in_file.close()\r
-\r
- in_file = TextFile(filename, strip_comments=1, skip_blanks=0,\r
- lstrip_ws=0, rstrip_ws=0)\r
- try:\r
- test_input(2, "strip comments", in_file, result2)\r
- finally:\r
- in_file.close()\r
-\r
- in_file = TextFile(filename, strip_comments=0, skip_blanks=1,\r
- lstrip_ws=0, rstrip_ws=0)\r
- try:\r
- test_input(3, "strip blanks", in_file, result3)\r
- finally:\r
- in_file.close()\r
-\r
- in_file = TextFile(filename)\r
- try:\r
- test_input(4, "default processing", in_file, result4)\r
- finally:\r
- in_file.close()\r
-\r
- in_file = TextFile(filename, strip_comments=1, skip_blanks=1,\r
- join_lines=1, rstrip_ws=1)\r
- try:\r
- test_input(5, "join lines without collapsing", in_file, result5)\r
- finally:\r
- in_file.close()\r
-\r
- in_file = TextFile(filename, strip_comments=1, skip_blanks=1,\r
- join_lines=1, rstrip_ws=1, collapse_join=1)\r
- try:\r
- test_input(6, "join lines with collapsing", in_file, result6)\r
- finally:\r
- in_file.close()\r
-\r
-def test_suite():\r
- return unittest.makeSuite(TextFileTestCase)\r
-\r
-if __name__ == "__main__":\r
- run_unittest(test_suite())\r