Пример #1
0
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()
Пример #2
0
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]
Пример #3
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)
Пример #4
0
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'
Пример #5
0
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()
Пример #6
0
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'
Пример #7
0
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()
Пример #8
0
def renderer():
    return Renderer()