Minor edit of inline markup documentation (no change of behaviour).
[docutils.git] / tools / test / test_buildhtml.py
blob4c9f3897863f9ac790e4db160ef03a7433cc1eff
1 #!/usr/bin/env python
3 # $Id$
4 # Author: engelbert gruber <grubert@users.sourceforge.net>
5 # Copyright: This module has been placed in the public domain.
7 """
8 test buildhtml options, because ``--local`` is broken.
10 Build-HTML Options
11 ------------------
12 --recurse Recursively scan subdirectories for files to process.
13 This is the default.
14 --local Do not scan subdirectories for files to process.
15 --prune=<directory> Do not process files in <directory>. This option may
16 be used more than once to specify multiple
17 directories.
18 --ignore=<patterns> Recursively ignore files or directories matching any
19 of the given wildcard (shell globbing) patterns
20 (separated by colons). Default: ".svn:CVS"
21 --silent Work silently (no progress messages). Independent of
22 "--quiet".
23 """
25 import unittest
26 import os
27 import re
29 def process_and_return_filelist(options):
30 dirs = []
31 files = []
32 cin, cout = os.popen4("../buildhtml.py "+options)
33 while 1:
34 ln = cout.readline()
35 if not ln:
36 break
37 # BUG no colon in filename/path allowed
38 item = ln.split(":")[-1].strip()
39 if ln.startswith(" "):
40 files.append(item)
41 else:
42 dirs.append(item)
43 return (dirs, files)
45 class BuildHtmlTests(unittest.TestCase):
46 tree = ( "_tmp_test_tree",
47 "_tmp_test_tree/one.txt",
48 "_tmp_test_tree/two.txt",
49 "_tmp_test_tree/dir1",
50 "_tmp_test_tree/dir1/one.txt",
51 "_tmp_test_tree/dir1/two.txt",
52 "_tmp_test_tree/dir2",
53 "_tmp_test_tree/dir2/one.txt",
54 "_tmp_test_tree/dir2/two.txt",
55 "_tmp_test_tree/dir2/sub",
56 "_tmp_test_tree/dir2/sub/one.txt",
57 "_tmp_test_tree/dir2/sub/two.txt",
60 def setUp(self):
61 self.root = os.tempnam()
62 os.mkdir(self.root)
63 for s in self.tree:
64 s = os.path.join(self.root, s)
65 if not "." in s:
66 os.mkdir(s)
67 else:
68 open(s, "w").write("dummy")
70 def tearDown(self):
71 for i in range(len(self.tree) - 1, -1, -1):
72 s = os.path.join(self.root, self.tree[i])
73 if not "." in s:
74 os.rmdir(s)
75 else:
76 os.remove(s)
77 os.rmdir(self.root)
79 def test_1(self):
80 opts = "--dry-run "+ self.root
81 dirs, files = process_and_return_filelist( opts )
82 self.assertEquals(files.count("one.txt"), 4)
84 def test_local(self):
85 opts = "--dry-run --local "+ self.root
86 dirs, files = process_and_return_filelist( opts )
87 self.assertEquals( len(dirs), 1)
88 self.assertEquals( files, [])
90 if __name__ == '__main__':
91 unittest.main()