Esempio n. 1
0
def main() -> None:
    '''Entry-point for command-line calling (texlite.__main__:main)'''

    # parse command-line arguments
    parser = argparse.ArgumentParser(
        usage='texlite [options] <source>',
        description=description,
        epilog='For more information go to https://lucienrae.com/texlite/.')
    parser.add_argument('source',
                        type=str,
                        help='path to source markdown (.md) file to parse and '
                        'compile')
    parser.add_argument('-V',
                        '--version',
                        action='version',
                        version=f'TeXLite {__version__}',
                        help='display version and exit')
    parser.add_argument('-t',
                        '--save-tex',
                        action='store_true',
                        default=False,
                        help='save TeX (.tex) file used in compilation')
    parser.add_argument('--show-tex-output',
                        action='store_true',
                        default=False,
                        help='show output for TeX and pdfLaTeX '
                        'processes')
    parser.add_argument('--no-pdf',
                        action='store_true',
                        default=False,
                        help='save TeX (.tex) and do not generate PDF')
    parser.add_argument('--default-packages',
                        metavar='F',
                        help='use text '
                        '(.txt) file to specify a custom set of default '
                        'packages to use (one line per package name)')
    args = parser.parse_args()

    # run texlite
    run(args=args)
Esempio n. 2
0
def test_component(component):
    '''Test a component against its corresponding expected output'''

    # set arguments
    args = {
        'source': Path(f'tests/assets/test_components/{component}.md'),
        'save_tex': True,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'default_packages': None,
    }

    # execute main
    run(args=argparse.Namespace(**args))

    pair = (
        _read(Path(f'tests/assets/test_components/{component}.tex')),
        _read(Path(f'tests/assets/test_components/expected/{component}.tex')))

    assert pair[0] == pair[1]

    # tear down
    Path(f'tests/assets/test_components/{component}.tex').unlink()
    Path(f'tests/assets/test_components/{component}.pdf').unlink()
Esempio n. 3
0
def main():
    '''Entry-point for command-line calling (texlite.__main__:main)'''

    # parse command-line arguments
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument('source',
                        type=str,
                        help='path to source markdown (.md) file to parse and '
                        'compile')
    parser.add_argument('-V',
                        '--version',
                        action='version',
                        version=f'TeXLite {__version__}',
                        help='display version and exit')
    parser.add_argument('-t',
                        '--save-tex',
                        action='store_true',
                        default=False,
                        help='save TeX (.tex) file used in compilation')
    parser.add_argument('--show-tex-output',
                        action='store_true',
                        default=False,
                        help='show output for TeX and pdfLaTeX '
                        'processes')
    parser.add_argument('--no-pdf',
                        action='store_true',
                        default=False,
                        help='save TeX (.tex) and do not generate PDF')
    parser.add_argument('--use-packages',
                        metavar='CFG',
                        help='Read in JSON '
                        'file with list of packages to use')
    args = parser.parse_args()

    # run texlite
    run(args=args)
Esempio n. 4
0
def test_incorrect_source():
    '''Tests feeding in a file of the wrong type (not .md)'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/incorrect.txt'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'default_packages': None,
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success is False
Esempio n. 5
0
def test_nonexistent_source():
    '''Tests feeding in a non-existent file'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/doesnotexist.md'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'default_packages': None,
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success is False
Esempio n. 6
0
def test_undefined_command():
    '''Tests feeding in a file with an undefined control sequence'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/undefined_command.md'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'default_packages': None,
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success is False
Esempio n. 7
0
def test_simple_source():
    '''Tests feeding in a simple source file'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/simple.md'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'default_packages': None,
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success
    assert Path('tests/assets/test_compile/simple.pdf').exists()

    # tear down
    Path('tests/assets/test_compile/simple.pdf').unlink()
Esempio n. 8
0
def test_empty_source():
    '''Tests feeding in an empty source file'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/empty.md'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': False,
        'use_packages': None,  # default to texlite/config/packages.json
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success
    assert Path('tests/assets/test_compile/empty.pdf').exists()

    # tear down
    Path('tests/assets/test_compile/empty.pdf').unlink()
Esempio n. 9
0
def test_no_pdf_compile():
    '''Tests feeding in a file and not creating a pdf'''

    # set arguments
    args = {
        'source': Path('tests/assets/test_compile/simple.md'),
        'save_tex': False,
        'show_tex_output': SHOW_TEX_OUTPUT,
        'no_pdf': True,
        'use_packages': None,  # default to texlite/config/packages.json
    }

    # execute main
    success = run(args=argparse.Namespace(**args))

    # assert
    assert success
    assert not Path('tests/assets/test_compile/simple.pdf').exists()

    # tear down
    if Path('tests/assets/test_compile/simple.tex').exists():
        Path('tests/assets/test_compile/simple.tex').unlink()