Exemple #1
0
def test_loadfile_pdf_with_bad_path(tmp_path, mock_init):
    pdf_path = str(tmp_path) + '/pathed_file.pdf'
    # (no touch)
    with open(u.ROOT + 'examples/sample.bib') as f:
        text = f.read()
    text = f'pdf: {pdf_path}\n{text}'
    bibs = bm.loadfile(text=text)
    assert bibs[0].pdf is None
def test_export_home(bibs, mock_init):
    my_bibs = [bibs["stodden"], bibs["beaulieu_apj"]]
    bm.export(my_bibs, u.BM_BIBFILE)
    assert "bm_bibliography.bib" in os.listdir(u.HOME)
    with open(u.BM_BIBFILE, "r") as f:
        lines = f.readlines()
    assert lines[0] == "This file was created by bibmanager\n"
    loaded_bibs = bm.loadfile(u.BM_BIBFILE)
    assert loaded_bibs == sorted(my_bibs)
Exemple #3
0
def test_loadfile_pdf_with_path(tmp_path, mock_init):
    pdf_path = str(tmp_path) + '/pathed_file.pdf'
    pathlib.Path(pdf_path).touch()
    with open(u.ROOT + 'examples/sample.bib') as f:
        text = f.read()
    text = f'pdf: {pdf_path}\n{text}'
    bibs = bm.loadfile(text=text)
    assert bibs[0].pdf == 'pathed_file.pdf'
    assert 'pathed_file.pdf' in os.listdir(u.BM_PDF())
    assert not os.path.isfile(pdf_path)
Exemple #4
0
def test_loadfile_meta():
    with open(u.ROOT + 'examples/sample.bib') as f:
        text = f.read()
    # prepend meta info before first entry:
    text = 'freeze\npdf: file.pdf\n' + text
    bibs = bm.loadfile(text=text)

    assert bibs[0].pdf == 'file.pdf'
    assert bibs[0].freeze is True
    assert bibs[1].pdf is None
    assert bibs[1].freeze is None
Exemple #5
0
def test_reset_keep_database(capsys, mock_init_sample):
    bibfile = u.HOME + "examples/sample.bib"
    # Simulate user input:
    sys.argv = f"bibm reset {bibfile}".split()
    cli.main()
    captured = capsys.readouterr()
    assert captured.out == f"Initializing new bibmanager database with BibTeX file: '{bibfile}'.\n" \
                           "Resetting config parameters.\n"
    assert set(os.listdir(u.HOME)) == set(
        ["bm_database.pickle", "bm_bibliography.bib", "config", "examples"])
    bibs = bm.loadfile(bibfile)
    assert len(bibs) == 17
Exemple #6
0
def test_build_bib_missing(capsys, mock_init):
    # Assert screen output:
    bm.merge(u.HOME + "examples/sample.bib")
    captured = capsys.readouterr()
    texfile = u.HOME + "examples/mock_file.tex"
    with open(texfile, "w") as f:
        f.write(
            "\\cite{Astropycollab2013aaAstropy} \\cite{MissingEtal2019}.\n")
    missing = lm.build_bib(texfile, u.HOME + "my_file.bib")
    captured = capsys.readouterr()
    assert captured.out == "References not found:\nMissingEtal2019\n"
    # Check content:
    np.testing.assert_array_equal(missing, np.array(["MissingEtal2019"]))
    bibs = bm.loadfile(u.HOME + "my_file.bib")
    assert len(bibs) == 1
    assert "Astropycollab2013aaAstropy" in bibs[0].key
Exemple #7
0
def test_build_bib_inplace(mock_init):
    bm.merge(u.HOME + "examples/sample.bib")
    os.chdir(u.HOME + "examples")
    missing = lm.build_bib("sample.tex")
    files = os.listdir(".")
    assert "texsample.bib" in files
    # Now check content:
    np.testing.assert_array_equal(missing, np.zeros(0, dtype="U"))
    bibs = bm.loadfile("texsample.bib")
    assert len(bibs) == 7
    keys = [bib.key for bib in bibs]
    assert "AASteamHendrickson2018aastex62" in keys
    assert "vanderWaltEtal2011numpy" in keys
    assert "JonesEtal2001scipy" in keys
    assert "Hunter2007ieeeMatplotlib" in keys
    assert "PerezGranger2007cseIPython" in keys
    assert "MeurerEtal2017pjcsSYMPY" in keys
    assert "Astropycollab2013aaAstropy" in keys
def test_merge_bibs(capfd, mock_init):
    new = bm.loadfile(u.HOME + "examples/sample.bib")
    bm.merge(new=new)
    captured = capfd.readouterr()
    assert captured.out == "\nMerged 17 new entries.\n"
def test_loadfile_text(mock_init):
    with open(u.ROOT + 'examples/sample.bib') as f:
        text = f.read()
    bibs = bm.loadfile(text=text)
    assert len(bibs) == 17
def test_loadfile_bibfile(mock_init):
    bibs = bm.loadfile(u.ROOT + 'examples/sample.bib')
    assert len(bibs) == 17