summaryrefslogtreecommitdiff
path: root/docutils/tools/test
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2012-09-03 09:17:15 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2012-09-03 09:17:15 +0000
commit9a3bceff09d3f296fc96e6df2a577eeef968afb8 (patch)
treec76f105ae7f21973f72c2863a9706ce5fb455cb1 /docutils/tools/test
parentaf385e3685e71f583173ca39793708c6d9d251b7 (diff)
downloaddocutils-9a3bceff09d3f296fc96e6df2a577eeef968afb8.tar.gz
Allow running test_buildhtml.py from anywhere, also with Python 3.
Fixes [ 3521167 ] and [ 3521168 ]. git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@7505 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/tools/test')
-rw-r--r--docutils/tools/test/test_buildhtml.py49
1 files changed, 30 insertions, 19 deletions
diff --git a/docutils/tools/test/test_buildhtml.py b/docutils/tools/test/test_buildhtml.py
index 53baf6559..a0a670559 100644
--- a/docutils/tools/test/test_buildhtml.py
+++ b/docutils/tools/test/test_buildhtml.py
@@ -34,40 +34,49 @@ try:
except ImportError:
pass
+
+buildhtml_path = os.path.abspath(os.path.join(
+ os.path.dirname(__file__) or os.curdir,
+ '..', 'buildhtml.py'))
+
def process_and_return_filelist(options):
dirs = []
files = []
try:
- p = Popen("../buildhtml.py "+options, shell=True,
+ p = Popen(buildhtml_path+" "+options, shell=True,
stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
(cin, cout) = (p.stdin, p.stdout)
except NameError:
- cin, cout = os.popen4("../buildhtml.py "+options)
+ cin, cout = os.popen4(buildhtml_path+" "+options)
while 1:
line = cout.readline()
if not line:
break
+ # in Py 3x, cout.readline() returns `bytes` and the processing fails
+ line = line.decode('ascii', 'replace')
# BUG no colon in filename/path allowed
- item = line.split(":")[-1].strip()
+ item = line.split(": ")[-1].strip()
if line.startswith(" "):
files.append(item)
else:
dirs.append(item)
+ cin.close()
+ cout.close()
return (dirs, files)
class BuildHtmlTests(unittest.TestCase):
tree = ( "_tmp_test_tree",
- "_tmp_test_tree/one.txt",
- "_tmp_test_tree/two.txt",
- "_tmp_test_tree/dir1",
- "_tmp_test_tree/dir1/one.txt",
- "_tmp_test_tree/dir1/two.txt",
- "_tmp_test_tree/dir2",
- "_tmp_test_tree/dir2/one.txt",
- "_tmp_test_tree/dir2/two.txt",
- "_tmp_test_tree/dir2/sub",
- "_tmp_test_tree/dir2/sub/one.txt",
- "_tmp_test_tree/dir2/sub/two.txt",
+ "_tmp_test_tree/one.txt",
+ "_tmp_test_tree/two.txt",
+ "_tmp_test_tree/dir1",
+ "_tmp_test_tree/dir1/one.txt",
+ "_tmp_test_tree/dir1/two.txt",
+ "_tmp_test_tree/dir2",
+ "_tmp_test_tree/dir2/one.txt",
+ "_tmp_test_tree/dir2/two.txt",
+ "_tmp_test_tree/dir2/sub",
+ "_tmp_test_tree/dir2/sub/one.txt",
+ "_tmp_test_tree/dir2/sub/two.txt",
)
def setUp(self):
@@ -76,13 +85,15 @@ class BuildHtmlTests(unittest.TestCase):
except NameError:
self.root = os.tempnam()
os.mkdir(self.root)
-
+
for s in self.tree:
s = os.path.join(self.root, s)
if not "." in s:
os.mkdir(s)
else:
- open(s, "w").write("dummy")
+ fd_s = open(s, "w")
+ fd_s.write("dummy")
+ fd_s.close()
def tearDown(self):
for i in range(len(self.tree) - 1, -1, -1):
@@ -96,13 +107,13 @@ class BuildHtmlTests(unittest.TestCase):
def test_1(self):
opts = "--dry-run "+ self.root
dirs, files = process_and_return_filelist( opts )
- self.assertEquals(files.count("one.txt"), 4)
+ self.assertEqual(files.count("one.txt"), 4)
def test_local(self):
opts = "--dry-run --local "+ self.root
dirs, files = process_and_return_filelist( opts )
- self.assertEquals( len(dirs), 1)
- self.assertEquals( files, [])
+ self.assertEqual( len(dirs), 1)
+ self.assertEqual( files, [])
if __name__ == '__main__':
unittest.main()