def test_tikz_basic_setup(monkeypatch, tmpdir, document): mock_call = Mock() mock_move = Mock() monkeypatch.setattr('subprocess.call', mock_call) monkeypatch.setattr('os.remove', Mock) monkeypatch.setattr('shutil.move', mock_move) doc = document() tikz_tmpdir = doc.userdata['tikzpicture']['tmp_dir'] with tmpdir.as_cwd(): renderer = Renderer() renderer.render(doc) pics = doc.getElementsByTagName('tikzpicture') assert pics tex_path = os.path.join(tikz_tmpdir, pics[0].id + '.tex') assert os.path.isfile(tex_path) with open(tex_path, 'r') as f: assert 'draw' in f.read() assert 'pdflatex' in mock_call.call_args_list[0][0][0] assert 'pdf2svg' in mock_call.call_args_list[1][0][0] assert mock_move.called assert 'TikZ picture' in tmpdir.join('index.html').read()
def test_tikzcd_config_options(monkeypatch, tmpdir, document_cd): mock_call = Mock() mock_move = Mock() monkeypatch.setattr('subprocess.call', mock_call) monkeypatch.setattr('os.remove', Mock) monkeypatch.setattr('shutil.move', mock_move) with py.path.local(os.path.dirname(__file__)).as_cwd(): doc = document_cd(compiler='xelatex', converter='mockconv', template='tikzcdtemplate') tikz_tmpdir = doc.userdata['tikzcd']['tmp_dir'] with tmpdir.as_cwd(): renderer = Renderer() renderer.render(doc) pics = doc.getElementsByTagName('tikzcd') assert pics tex_path = os.path.join(tikz_tmpdir, pics[0].id + '.tex') assert os.path.isfile(tex_path) with open(tex_path, 'r') as f: assert 'usetikzlibrary' in f.read() assert 'xelatex' in mock_call.call_args_list[0][0][0] assert 'mockconv' in mock_call.call_args_list[1][0][0]
def test_tikzcd_basic_setup(monkeypatch, tmpdir, document_cd): cur_dir = os.getcwd() os.chdir(os.path.dirname(__file__)) mock_call = Mock() mock_move = Mock() monkeypatch.setattr('subprocess.call', mock_call) monkeypatch.setattr('os.remove', Mock) monkeypatch.setattr('shutil.move', mock_move) doc = document_cd() tikz_tmpdir = doc.userdata['tikzcd']['tmp_dir'] os.chdir(str(tmpdir)) renderer = Renderer() renderer.render(doc) pics = doc.getElementsByTagName('tikzcd') assert pics tex_path = os.path.join(tikz_tmpdir, pics[0].id + '.tex') assert os.path.isfile(tex_path) with open(tex_path, 'r') as f: assert '\\rar' in f.read() assert 'pdflatex' in mock_call.call_args_list[0][0][0] assert 'pdf2svg' in mock_call.call_args_list[1][0][0] assert mock_move.called assert 'Commutative diagram' in tmpdir.join('index.html').read() os.chdir(cur_dir)
def test_package_resource(tmpdir): config = defaultConfig() config['general'].data['packages-dirs'].value = [ str(Path(__file__).parent) ] addConfig(config) doc = TeXDocument(config=config) tex = TeX(doc) tex.input(""" \\documentclass{article} \\usepackage{examplePackage} \\begin{document} \\emph{Hello} \\end{document}""") doc = tex.parse() doc.userdata['working-dir'] = os.path.dirname(__file__) with tmpdir.as_cwd(): Renderer().render(doc) assert tmpdir.join('styles', 'test.css').isfile() assert tmpdir.join('js', 'test.js').isfile() assert 'class="em"' in tmpdir.join('index.html').read() assert doc.userdata['testing'] == 'test'
def test_intro_snippet(tmpdir): (Path(tmpdir) / 'test.tex').write_text(r""" \documentclass{article} \begin{document} Hello. \end{document} """) with tmpdir.as_cwd(): Renderer().render(TeX(myfile='test.tex').parse()) assert (Path(tmpdir) / 'index.html').exists() assert 'Hello' in (Path(tmpdir) / 'index.html').read_text()
def test_package_resource(tmpdir): doc = TeXDocument(config=config+html5_config) tex = TeX(doc) tex.input(""" \\documentclass{article} \\usepackage{examplePackage} \\begin{document} \\emph{Hello} \\end{document}""") doc = tex.parse() doc.userdata['working-dir'] = os.path.dirname(__file__) os.chdir(str(tmpdir)) Renderer().render(doc) assert tmpdir.join('styles', 'test.css').isfile() assert tmpdir.join('js', 'test.js').isfile() assert 'class="em"' in tmpdir.join('index.html').read() assert doc.userdata['testing'] == 'test'
def test_amsthm(tmpdir): root = Path(__file__).parent config = defaultConfig() addConfig(config) config['files']['split-level'] = -100 tex = TeX(TeXDocument(config=config)) tex.input((root / 'source.tex').read_text()) doc = tex.parse() doc.userdata['working-dir'] = Path(__file__).parent with tmpdir.as_cwd(): Renderer().render(doc) css = Path(tmpdir) / 'styles' / 'amsthm.css' css_bench = root / 'benchmark.css' html = Path(tmpdir) / 'index.html' html_bench = root / 'benchmark.html' assert html.exists() text = re.sub('id="[^"]*"', '', html.read_text()) bench = re.sub('id="[^"]*"', '', html_bench.read_text()) assert text.strip() == bench.strip() assert css.exists() assert css.read_text() == css_bench.read_text()
def renderer(): return Renderer()