test_main.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import subprocess
  2. import unittest.mock
  3. import pubmed_bibtex
  4. from pubmed_bibtex.__main__ import main
  5. # pylint: disable=wrong-import-order; false positive
  6. from conftest import TEST_PMID, TEST_BIBTEX_ENTRY
  7. def test_main(capsys):
  8. with unittest.mock.patch('sys.argv', ['', TEST_PMID]):
  9. main()
  10. out, err = capsys.readouterr()
  11. assert not err
  12. assert out == TEST_BIBTEX_ENTRY
  13. def test_script_module():
  14. proc_info = subprocess.run(['python', '-m', 'pubmed_bibtex', TEST_PMID],
  15. check=True,
  16. stdout=subprocess.PIPE,
  17. stderr=subprocess.PIPE)
  18. assert not proc_info.stderr
  19. assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
  20. def test_script():
  21. proc_info = subprocess.run(['pubmed-bibtex', TEST_PMID],
  22. check=True,
  23. stdout=subprocess.PIPE,
  24. stderr=subprocess.PIPE)
  25. assert not proc_info.stderr
  26. assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
  27. def test_version():
  28. proc_info = subprocess.run(['pubmed-bibtex', '--version'],
  29. check=True,
  30. stdout=subprocess.PIPE,
  31. stderr=subprocess.PIPE)
  32. assert not proc_info.stderr
  33. assert proc_info.stdout == pubmed_bibtex.__version__.encode() + b'\n'