Skip to content

Commit 24f01bd

Browse files
committed
using subprocess in experimental tests
1 parent 10a0ff1 commit 24f01bd

1 file changed

Lines changed: 23 additions & 23 deletions

File tree

tests/experimental/test_multirender.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import os
22
from pathlib import Path
3+
import subprocess
34
import sys
45

5-
from os.path import join, basename, splitext, normpath, abspath
6+
from os.path import join, basename, splitext, normpath
67

78
from string import Template
89
import logging
@@ -33,28 +34,26 @@
3334

3435

3536
def runcmd(syscmd):
36-
# err = os.system(syscmd)
37-
sres = os.popen(syscmd)
38-
resdata = sres.read()
39-
err = sres.close()
37+
result = subprocess.run(syscmd, text=True, capture_output=True)
38+
err = result.returncode
4039
if err:
4140
log.warning('Failed to run command:\n%s', syscmd)
42-
log.debug('Output:\n%s', resdata)
41+
log.debug('Output:\n%s', result)
4342
return err
4443

4544

4645
def meps(filename):
4746
fn = splitext(filename)[0]
48-
s = "latex -halt-on-error -interaction nonstopmode %s.tex" % fn
47+
s = ["latex', '-halt-on-error', '-interaction nonstopmode %s.tex" % fn]
4948
err = runcmd(s)
5049
if err:
5150
return err
5251
if sys.platform == 'win32':
53-
s = "dvips -Ppdf -G0 -D600 -E* -o%s.eps %s.dvi" % (fn, fn)
52+
s = ["dvips", "-Ppdf", "-G0", "-D600", "-E*", "-o%s.eps %s.dvi" % (fn, fn)]
5453
err = runcmd(s)
5554
if err:
5655
return err
57-
s = "epstool --bbox --copy --output %s_tmp.eps %s.eps" % (fn, fn)
56+
s = ["epstool", "--bbox", "--copy", "--output %s_tmp.eps %s.eps" % (fn, fn)]
5857
err = runcmd(s)
5958
if err:
6059
return err
@@ -65,19 +64,19 @@ def meps(filename):
6564
os.remove("%s.log" % fn)
6665
# os.remove("%s.pgf" % fn)
6766

68-
except:
67+
except OSError:
6968
raise
7069
os.rename("%s_tmp.eps" % fn, "%s.eps" % fn)
71-
s = "epstopdf %s.eps" % fn
70+
s = ["epstopdf", "%s.eps" % fn]
7271
err = runcmd(s)
7372
else:
74-
s = "dvips %s.dvi" % fn
73+
s = ["dvips", "%s.dvi" % fn]
7574
err = runcmd(s)
76-
s = "ps2eps -B -f %s.ps" % fn
75+
s = ["ps2eps", "-B", "-f", "%s.ps" % fn]
7776
err = runcmd(s)
7877
if err:
7978
return err
80-
s = "epstopdf %s.eps" % fn
79+
s = ["epstopdf", "%s.eps" % fn]
8180
err = runcmd(s)
8281

8382
return err
@@ -114,9 +113,9 @@ def create_pdf(texfile, use_pdftex=True):
114113
else:
115114
fn = basename(texfile)
116115
if sys.platform == 'win32':
117-
syscmd = 'texify --pdf --clean %s' % (fn)
116+
syscmd = ['texify', '--pdf --clean %s' % (fn)]
118117
else:
119-
syscmd = 'pdflatex -halt-on-error -interaction nonstopmode %s' % (fn)
118+
syscmd = ['pdflatex', '-halt-on-error -interaction nonstopmode %s' % (fn)]
120119
err = runcmd(syscmd)
121120
return err
122121

@@ -129,9 +128,9 @@ def create_original(dotfilename):
129128
destfile = normpath(join(DEST_DIR, splitext(basefn)[0]))
130129
cwd = os.getcwd()
131130
os.chdir(os.path.dirname(destfile))
132-
syscmd = 'dot -Tps2 %s > %s.ps' % (dotfilename, destfile)
131+
syscmd = ['dot', '-Tps2 %s > %s.ps' % (dotfilename, destfile)]
133132
err = runcmd(syscmd)
134-
syscmd = 'ps2pdf %s.ps' % (destfile)
133+
syscmd = ['ps2pdf', '%s.ps' % (destfile)]
135134
# os.remove("%s.ps" % destfile)
136135
err = runcmd(syscmd)
137136
os.chdir(cwd)
@@ -141,7 +140,7 @@ def create_original(dotfilename):
141140
def create_tikz(dotfilename):
142141
basefn = basename(dotfilename)
143142
destfile = normpath(join(DEST_DIR, splitext(basefn)[0])) + '_tikz'
144-
syscmd = 'dot2tex -ftikz --crop %s > %s.tex' % (dotfilename, destfile)
143+
syscmd = ['dot2tex', '-ftikz --crop %s > %s.tex' % (dotfilename, destfile)]
145144
err = runcmd(syscmd)
146145
cwd = os.getcwd()
147146
os.chdir(os.path.dirname(destfile))
@@ -154,7 +153,7 @@ def create_tikz(dotfilename):
154153
def create_pgf(dotfilename):
155154
basefn = basename(dotfilename)
156155
destfile = normpath(join(DEST_DIR, splitext(basefn)[0])) + '_pgf'
157-
syscmd = 'dot2tex --crop %s > %s.tex' % (dotfilename, destfile)
156+
syscmd = ['dot2tex', '--crop %s > %s.tex' % (dotfilename, destfile)]
158157
err = runcmd(syscmd)
159158
cwd = os.getcwd()
160159
os.chdir(os.path.dirname(destfile))
@@ -167,7 +166,7 @@ def create_pgf(dotfilename):
167166
def create_pst(dotfilename):
168167
basefn = basename(dotfilename)
169168
destfile = normpath(join(DEST_DIR, splitext(basefn)[0])) + '_pst'
170-
syscmd = 'dot2tex -fpst %s > %s.tex' % (dotfilename, destfile)
169+
syscmd = ['dot2tex', '-fpst', '%s > %s.tex' % (dotfilename, destfile)]
171170
err = runcmd(syscmd)
172171
cwd = os.getcwd()
173172
os.chdir(os.path.dirname(destfile))
@@ -317,11 +316,12 @@ def test_zzzzzzzzzzzfinal(self):
317316
for dotfile in self.cmplist:
318317
basefn = basename(dotfile)
319318
flist.append(normpath(join(splitext(basefn)[0])) + '_cmp.pdf')
320-
s = "pdftk %s cat output testrenders.pdf dont_ask" % " ".join(flist)
319+
s = ["pdftk", " ".join(flist), "cat",
320+
"output", "testrenders.pdf", "dont_ask"]
321321
err = runcmd(s)
322322
self.assertFalse(err)
323323
if sys.platform == 'win32':
324-
syscmd = "start %s" % 'testrenders.pdf'
324+
syscmd = ["start", 'testrenders.pdf']
325325
err = runcmd(syscmd)
326326
print("Check testrenders.pdf manually")
327327

0 commit comments

Comments
 (0)