]> granicus.if.org Git - python/commitdiff
moved distutils.text_file tests into a real unittest class
authorTarek Ziadé <ziade.tarek@gmail.com>
Sun, 22 Feb 2009 19:58:12 +0000 (19:58 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Sun, 22 Feb 2009 19:58:12 +0000 (19:58 +0000)
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..8f4f7e8
--- /dev/null
@@ -0,0 +1,87 @@
+"""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 = map(lambda x: x + "\n",
+                      TEST_DATA.split("\n")[0:-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()
+            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 ff2878de1b6b59c53845fd8f3a54ba09da19cf8a..931f0bac196ae292e8f7a27b3ebc78300476c46e 100644 (file)
@@ -303,80 +303,3 @@ class TextFile:
            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 = map (lambda x: x + "\n", string.split (test_data, "\n")[0:-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 ()
-        # result = string.join (result, '')
-        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)
-
-    os.remove (filename)