]> granicus.if.org Git - python/commitdiff
Merged revisions 69874 via svnmerge from
authorTarek Ziadé <ziade.tarek@gmail.com>
Sun, 22 Feb 2009 20:05:16 +0000 (20:05 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Sun, 22 Feb 2009 20:05:16 +0000 (20:05 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r69874 | tarek.ziade | 2009-02-22 20:58:12 +0100 (Sun, 22 Feb 2009) | 1 line

  moved distutils.text_file tests into a real unittest class
........

Lib/distutils/tests/test_text_file.py [new file with mode: 0644]
Lib/distutils/text_file.py

diff --git a/Lib/distutils/tests/test_text_file.py b/Lib/distutils/tests/test_text_file.py
new file mode 100644 (file)
index 0000000..00f083a
--- /dev/null
@@ -0,0 +1,88 @@
+"""Tests for distutils.text_file."""
+import os
+import unittest
+from distutils.text_file import TextFile
+from distutils.tests import support
+
+TEST_DATA = """# test file
+
+line 3 \\
+# intervening comment
+  continues on next line
+"""
+
+class TextFileTestCase(support.TempdirManager, unittest.TestCase):
+
+    def test_class(self):
+        # old tests moved from text_file.__main__
+        # so they are really called by the buildbots
+
+        # result 1: no fancy options
+        result1 = ['# test file\n', '\n', 'line 3 \\\n',
+                   '# intervening comment\n',
+                   '  continues on next line\n']
+
+        # result 2: just strip comments
+        result2 = ["\n",
+                   "line 3 \\\n",
+                   "  continues on next line\n"]
+
+        # result 3: just strip blank lines
+        result3 = ["# test file\n",
+                   "line 3 \\\n",
+                   "# intervening comment\n",
+                   "  continues on next line\n"]
+
+        # result 4: default, strip comments, blank lines,
+        # and trailing whitespace
+        result4 = ["line 3 \\",
+                   "  continues on next line"]
+
+        # result 5: strip comments and blanks, plus join lines (but don't
+        # "collapse" joined lines
+        result5 = ["line 3   continues on next line"]
+
+        # result 6: strip comments and blanks, plus join lines (and
+        # "collapse" joined lines
+        result6 = ["line 3 continues on next line"]
+
+        def test_input(count, description, file, expected_result):
+            result = file.readlines()
+            self.assertEquals(result, expected_result)
+
+        tmpdir = self.mkdtemp()
+        filename = os.path.join(tmpdir, "test.txt")
+        out_file = open(filename, "w")
+        try:
+            out_file.write(TEST_DATA)
+        finally:
+            out_file.close()
+
+        in_file = TextFile (filename, strip_comments=0, skip_blanks=0,
+                            lstrip_ws=0, rstrip_ws=0)
+        test_input (1, "no processing", in_file, result1)
+
+        in_file = TextFile (filename, strip_comments=1, skip_blanks=0,
+                            lstrip_ws=0, rstrip_ws=0)
+        test_input (2, "strip comments", in_file, result2)
+
+        in_file = TextFile (filename, strip_comments=0, skip_blanks=1,
+                            lstrip_ws=0, rstrip_ws=0)
+        test_input (3, "strip blanks", in_file, result3)
+
+        in_file = TextFile (filename)
+        test_input (4, "default processing", in_file, result4)
+
+        in_file = TextFile (filename, strip_comments=1, skip_blanks=1,
+                            join_lines=1, rstrip_ws=1)
+        test_input (5, "join lines without collapsing", in_file, result5)
+
+        in_file = TextFile (filename, strip_comments=1, skip_blanks=1,
+                            join_lines=1, rstrip_ws=1, collapse_join=1)
+        test_input (6, "join lines with collapsing", in_file, result6)
+
+def test_suite():
+    return unittest.makeSuite(TextFileTestCase)
+
+if __name__ == "__main__":
+    unittest.main(defaultTest="test_suite")
index 266466c1ebfbae86cf82fea7145b6ed54a1a59ca..97459fbf736ae3c42651c4e7132cbbd9122fb3b9 100644 (file)
@@ -282,80 +282,3 @@ class TextFile:
            checked by future 'readline()' calls.  Handy for implementing
            a parser with line-at-a-time lookahead."""
         self.linebuf.append(line)
-
-
-if __name__ == "__main__":
-    test_data = """# test file
-
-line 3 \\
-# intervening comment
-  continues on next line
-"""
-    # result 1: no fancy options
-    result1 = [x + "\n" for x in test_data.split("\n")[:-1]]
-
-    # result 2: just strip comments
-    result2 = ["\n",
-               "line 3 \\\n",
-               "  continues on next line\n"]
-
-    # result 3: just strip blank lines
-    result3 = ["# test file\n",
-               "line 3 \\\n",
-               "# intervening comment\n",
-               "  continues on next line\n"]
-
-    # result 4: default, strip comments, blank lines, and trailing whitespace
-    result4 = ["line 3 \\",
-               "  continues on next line"]
-
-    # result 5: strip comments and blanks, plus join lines (but don't
-    # "collapse" joined lines
-    result5 = ["line 3   continues on next line"]
-
-    # result 6: strip comments and blanks, plus join lines (and
-    # "collapse" joined lines
-    result6 = ["line 3 continues on next line"]
-
-    def test_input(count, description, file, expected_result):
-        result = file.readlines()
-        if result == expected_result:
-            print("ok %d (%s)" % (count, description))
-        else:
-            print("not ok %d (%s):" % (count, description))
-            print("** expected:")
-            print(expected_result)
-            print("** received:")
-            print(result)
-
-
-    filename = "test.txt"
-    out_file = open(filename, "w")
-    out_file.write(test_data)
-    out_file.close()
-
-    in_file = TextFile(filename, strip_comments=0, skip_blanks=0,
-                       lstrip_ws=0, rstrip_ws=0)
-    test_input(1, "no processing", in_file, result1)
-
-    in_file = TextFile(filename, strip_comments=1, skip_blanks=0,
-                       lstrip_ws=0, rstrip_ws=0)
-    test_input(2, "strip comments", in_file, result2)
-
-    in_file = TextFile(filename, strip_comments=0, skip_blanks=1,
-                       lstrip_ws=0, rstrip_ws=0)
-    test_input(3, "strip blanks", in_file, result3)
-
-    in_file = TextFile(filename)
-    test_input(4, "default processing", in_file, result4)
-
-    in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                       join_lines=1, rstrip_ws=1)
-    test_input(5, "join lines without collapsing", in_file, result5)
-
-    in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                       join_lines=1, rstrip_ws=1, collapse_join=1)
-    test_input(6, "join lines with collapsing", in_file, result6)
-
-    del in_file
-    os.remove(filename)