test_main.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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(
  15. ["python", "-m", "pubmed_bibtex", TEST_PMID],
  16. check=True,
  17. stdout=subprocess.PIPE,
  18. stderr=subprocess.PIPE,
  19. )
  20. assert not proc_info.stderr
  21. assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
  22. def test_script():
  23. proc_info = subprocess.run(
  24. ["pubmed-bibtex", TEST_PMID],
  25. check=True,
  26. stdout=subprocess.PIPE,
  27. stderr=subprocess.PIPE,
  28. )
  29. assert not proc_info.stderr
  30. assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
  31. def test_version():
  32. proc_info = subprocess.run(
  33. ["pubmed-bibtex", "--version"],
  34. check=True,
  35. stdout=subprocess.PIPE,
  36. stderr=subprocess.PIPE,
  37. )
  38. assert not proc_info.stderr
  39. assert proc_info.stdout == pubmed_bibtex.__version__.encode() + b"\n"