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)
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()
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)
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
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
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
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()
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()
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()