annotate Lib/distutils/tests/test_text_file.py @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents cd2ee8190957
children a17b21c27a33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
51792
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
1 """Tests for distutils.text_file."""
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
2 import os
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
3 import unittest
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
4 from distutils.text_file import TextFile
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
5 from distutils.tests import support
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
6
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
7 TEST_DATA = """# test file
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
8
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
9 line 3 \\
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
10 # intervening comment
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
11 continues on next line
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
12 """
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
13
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
14 class TextFileTestCase(support.TempdirManager, unittest.TestCase):
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
15
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
16 def test_class(self):
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
17 # old tests moved from text_file.__main__
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
18 # so they are really called by the buildbots
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
19
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
20 # result 1: no fancy options
51796
cd2ee8190957 removing map and lambda usage, so the test is similar to py3k's branch one
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 51792
diff changeset
21 result1 = ['# test file\n', '\n', 'line 3 \\\n',
cd2ee8190957 removing map and lambda usage, so the test is similar to py3k's branch one
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 51792
diff changeset
22 '# intervening comment\n',
cd2ee8190957 removing map and lambda usage, so the test is similar to py3k's branch one
Tarek Ziadé <ziade.tarek@gmail.com>
parents: 51792
diff changeset
23 ' continues on next line\n']
51792
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
24
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
25 # result 2: just strip comments
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
26 result2 = ["\n",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
27 "line 3 \\\n",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
28 " continues on next line\n"]
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
29
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
30 # result 3: just strip blank lines
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
31 result3 = ["# test file\n",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
32 "line 3 \\\n",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
33 "# intervening comment\n",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
34 " continues on next line\n"]
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
35
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
36 # result 4: default, strip comments, blank lines,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
37 # and trailing whitespace
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
38 result4 = ["line 3 \\",
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
39 " continues on next line"]
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
40
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
41 # result 5: strip comments and blanks, plus join lines (but don't
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
42 # "collapse" joined lines
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
43 result5 = ["line 3 continues on next line"]
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
44
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
45 # result 6: strip comments and blanks, plus join lines (and
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
46 # "collapse" joined lines
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
47 result6 = ["line 3 continues on next line"]
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
48
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
49 def test_input(count, description, file, expected_result):
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
50 result = file.readlines()
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
51 self.assertEquals(result, expected_result)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
52
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
53 tmpdir = self.mkdtemp()
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
54 filename = os.path.join(tmpdir, "test.txt")
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
55 out_file = open(filename, "w")
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
56 try:
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
57 out_file.write(TEST_DATA)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
58 finally:
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
59 out_file.close()
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
60
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
61 in_file = TextFile (filename, strip_comments=0, skip_blanks=0,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
62 lstrip_ws=0, rstrip_ws=0)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
63 test_input (1, "no processing", in_file, result1)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
64
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
65 in_file = TextFile (filename, strip_comments=1, skip_blanks=0,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
66 lstrip_ws=0, rstrip_ws=0)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
67 test_input (2, "strip comments", in_file, result2)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
68
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
69 in_file = TextFile (filename, strip_comments=0, skip_blanks=1,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
70 lstrip_ws=0, rstrip_ws=0)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
71 test_input (3, "strip blanks", in_file, result3)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
72
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
73 in_file = TextFile (filename)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
74 test_input (4, "default processing", in_file, result4)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
75
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
76 in_file = TextFile (filename, strip_comments=1, skip_blanks=1,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
77 join_lines=1, rstrip_ws=1)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
78 test_input (5, "join lines without collapsing", in_file, result5)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
79
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
80 in_file = TextFile (filename, strip_comments=1, skip_blanks=1,
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
81 join_lines=1, rstrip_ws=1, collapse_join=1)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
82 test_input (6, "join lines with collapsing", in_file, result6)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
83
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
84 def test_suite():
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
85 return unittest.makeSuite(TextFileTestCase)
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
86
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
87 if __name__ == "__main__":
b3515ed28135 moved distutils.text_file tests into a real unittest class
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
diff changeset
88 unittest.main(defaultTest="test_suite")