Selaa lähdekoodia

fix `python -m pubmed_bibtex` entrypoint

$ pipenv run python pubmed_bibtex
.../bin/python: can't find '__main__' module in 'pubmed_bibtex'
Fabian Peter Hammerle 5 vuotta sitten
vanhempi
commit
a7b9431810
6 muutettua tiedostoa jossa 61 lisäystä ja 46 poistoa
  1. 0 14
      pubmed_bibtex/__init__.py
  2. 15 0
      pubmed_bibtex/__main__.py
  3. 1 1
      setup.py
  4. 11 0
      tests/conftest.py
  5. 2 31
      tests/test_bibtex_entry_from_pmid.py
  6. 32 0
      tests/test_main.py

+ 0 - 14
pubmed_bibtex/__init__.py

@@ -7,7 +7,6 @@ a BibTeX interface for PubMed.
 TeXMed was written by Arne Muller
 https://www.bioinformatics.org/texmed/
 """
-import argparse
 import html.parser
 import re
 
@@ -42,16 +41,3 @@ def bibtex_entry_from_pmid(pmid: str) -> str:
     parser = _TeXMedHtmlParser()
     parser.feed(resp.text)
     return parser.bibtex_entry
-
-
-def _main():
-    argparser = argparse.ArgumentParser(
-        description=__doc__.strip(),
-        formatter_class=argparse.RawDescriptionHelpFormatter)
-    argparser.add_argument('pmid')
-    args = argparser.parse_args()
-    print(bibtex_entry_from_pmid(pmid=args.pmid),
-          end='')
-
-if __name__ == '__main__':
-    _main()

+ 15 - 0
pubmed_bibtex/__main__.py

@@ -0,0 +1,15 @@
+import argparse
+
+import pubmed_bibtex
+
+def main():
+    argparser = argparse.ArgumentParser(
+        description=pubmed_bibtex.__doc__.strip(),
+        formatter_class=argparse.RawDescriptionHelpFormatter)
+    argparser.add_argument('pmid')
+    args = argparser.parse_args()
+    print(pubmed_bibtex.bibtex_entry_from_pmid(pmid=args.pmid),
+          end='')
+
+if __name__ == '__main__':
+    main()

+ 1 - 1
setup.py

@@ -45,7 +45,7 @@ setuptools.setup(
     packages=setuptools.find_packages(),
     entry_points={
         'console_scripts': [
-            'pubmed-bibtex = pubmed_bibtex:_main',
+            'pubmed-bibtex = pubmed_bibtex.__main__:main',
         ],
     },
     python_requires='>=3.5',

+ 11 - 0
tests/conftest.py

@@ -0,0 +1,11 @@
+TEST_PMID = '31025164'
+
+TEST_BIBTEX_ENTRY = r"""@Article{pmid31025164,
+   Author="Egger, F.  and Hofer, C.  and Hammerle, F. P.  and Lofler, S.  and Nurnberg, M.  and Fiedler, L.  and Kriz, R.  and Kern, H.  and Huber, K. ",
+   Title="{{I}nfluence of electrical stimulation therapy on permanent pacemaker function}",
+   Journal="Wien. Klin. Wochenschr.",
+   Year="2019",
+   Month="Apr",
+   Note={[DOI:\href{https://dx.doi.org/10.1007/s00508-019-1494-5}{10.1007/s00508-019-1494-5}] [PubMed:\href{https://www.ncbi.nlm.nih.gov/pubmed/31025164}{31025164}] }
+}
+"""

+ 2 - 31
tests/test_bibtex_entry_from_pmid.py

@@ -1,36 +1,7 @@
-import subprocess
-import unittest.mock
+from pubmed_bibtex import bibtex_entry_from_pmid
 
-from pubmed_bibtex import bibtex_entry_from_pmid, _main
-
-TEST_PMID = '31025164'
-TEST_BIBTEX_ENTRY = r"""@Article{pmid31025164,
-   Author="Egger, F.  and Hofer, C.  and Hammerle, F. P.  and Lofler, S.  and Nurnberg, M.  and Fiedler, L.  and Kriz, R.  and Kern, H.  and Huber, K. ",
-   Title="{{I}nfluence of electrical stimulation therapy on permanent pacemaker function}",
-   Journal="Wien. Klin. Wochenschr.",
-   Year="2019",
-   Month="Apr",
-   Note={[DOI:\href{https://dx.doi.org/10.1007/s00508-019-1494-5}{10.1007/s00508-019-1494-5}] [PubMed:\href{https://www.ncbi.nlm.nih.gov/pubmed/31025164}{31025164}] }
-}
-"""
+from conftest import TEST_PMID, TEST_BIBTEX_ENTRY
 
 
 def test_bibtex_entry_from_pmid():
     assert bibtex_entry_from_pmid(pmid=TEST_PMID) == TEST_BIBTEX_ENTRY
-
-
-def test_main(capsys):
-    with unittest.mock.patch('sys.argv', ['', TEST_PMID]):
-        _main()
-    out, err = capsys.readouterr()
-    assert not err
-    assert out == TEST_BIBTEX_ENTRY
-
-
-def test_script():
-    proc_info = subprocess.run(['pubmed-bibtex', TEST_PMID],
-                               check=True,
-                               stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
-    assert not proc_info.stderr
-    assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()

+ 32 - 0
tests/test_main.py

@@ -0,0 +1,32 @@
+import subprocess
+import unittest.mock
+
+from pubmed_bibtex.__main__ import main
+
+from conftest import TEST_PMID, TEST_BIBTEX_ENTRY
+
+
+def test_main(capsys):
+    with unittest.mock.patch('sys.argv', ['', TEST_PMID]):
+        main()
+    out, err = capsys.readouterr()
+    assert not err
+    assert out == TEST_BIBTEX_ENTRY
+
+
+def test_script_module():
+    proc_info = subprocess.run(['python', '-m', 'pubmed_bibtex', TEST_PMID],
+                               check=True,
+                               stdout=subprocess.PIPE,
+                               stderr=subprocess.PIPE)
+    assert not proc_info.stderr
+    assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
+
+
+def test_script():
+    proc_info = subprocess.run(['pubmed-bibtex', TEST_PMID],
+                               check=True,
+                               stdout=subprocess.PIPE,
+                               stderr=subprocess.PIPE)
+    assert not proc_info.stderr
+    assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()