Exemple #1
0
def test_build_raise(mock_init):
    bm.merge(u.HOME + "examples/sample.bib")
    with open(u.HOME + "examples/mock_file.tex", "w") as f:
        f.write("\\cite{Astropycollab2013aaAstropy}")
    with pytest.raises(Exception,
                       match="No 'bibiliography' call found in tex file."):
        lm.build_bib(u.HOME + "examples/mock_file.tex")
def test_search_title_entry_without_title(mock_init_sample, entries):
    # Multiple-title querries act with AND logic:
    bib = bm.Bib(entries['jones_no_title'])
    bm.merge(new=[bib])
    matches = bm.search(title=['HD 209458b', 'atmospheric circulation'])
    assert len(matches) == 1
    keys = [m.key for m in matches]
    assert 'ShowmanEtal2009apjRadGCM' in keys
def test_merge_bibs_no_titles(capfd, mock_init):
    e1 = """@Misc{Jones2001scipy,
   author = {Eric Jones},
   year   = {2001},
 }"""
    e2 = """@Misc{Oliphant2001scipy,
   author = {Travis Oliphant},
   year   = {2001},
 }"""
    bibs = [bm.Bib(e1), bm.Bib(e2)]
    bm.merge(new=bibs)
    captured = capfd.readouterr()
    assert captured.out == "\nMerged 2 new entries.\n"
Exemple #4
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 #5
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
Exemple #6
0
def test_build_bib_inplace(mock_init):
    bm.merge(u.HOME+"examples/sample.bib")
    with cd(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.read_file("texsample.bib")
        assert len(bibs) == 8
        keys = [bib.key for bib in bibs]
        assert "AASteamHendrickson2018aastex62" in keys
        assert "HarrisEtal2020natNumpy" in keys
        assert "VirtanenEtal2020natmeScipy" in keys
        assert "Hunter2007ieeeMatplotlib" in keys
        assert "PerezGranger2007cseIPython" in keys
        assert "MeurerEtal2017pjcsSYMPY" in keys
        assert "Astropycollab2013aaAstropy" in keys
        assert "Cubillos2019zndoBibmanager" in keys
def test_set_home_and_edit(tmp_path, mock_init, bibs, reqs):
    new_home = f'{tmp_path}/bm'
    cm.set('home', new_home)
    assert cm.get('home') == new_home + '/'
    # Test merge:
    bm.merge(new=[bibs["beaulieu_apj"]], take='new')
    # Test search:
    matches = bm.search(authors="beaulieu")
    assert len(matches) == 1
    assert 'BeaulieuEtal2011apjGJ436bMethane' in matches[0].key
    # Test ADS add:
    am.add_bibtex(['1925PhDT.........1P'], ['Payne1925phdStellarAtmospheres'])
    # Test load:
    current_bibs = bm.load()
    assert len(current_bibs) == 2
    assert 'Payne1925phdStellarAtmospheres' in current_bibs[1].key
    # These files/folders stay:
    assert set(os.listdir(u.HOME)) == set(["config", "examples", "pdf"])
    # These files have been moved/created:
    assert set(os.listdir(str(new_home))) == \
        set(['pdf', 'bm_bibliography.bib', 'bm_database.pickle'])
def test_merge_no_new(capfd, bibs, mock_init_sample):
    bm.merge(new=[bibs['hunter']])
    captured = capfd.readouterr()
    assert captured.out == "\nMerged 0 new entries.\n"
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_merge_bibfile(capfd, mock_init):
    bm.merge(u.HOME + "examples/sample.bib")
    captured = capfd.readouterr()
    assert captured.out == f"\nMerged {nentries} new entries.\n"
def test_merge_duplicate_key_rename(bibs, mock_init_sample, mock_input):
    bm.merge(new=[bibs['oliphant_dup']])
    loaded_bibs = bm.load()
    assert len(loaded_bibs) == 18
    assert 'Oliphant2016numpyb' in [e.key for e in loaded_bibs]
Exemple #12
0
def test_build_bib_user_bibfile(tmp_path, mock_init):
    bibfile = f'{tmp_path}/my_file.bib'
    bm.merge(u.HOME + "examples/sample.bib")
    lm.build_bib(u.HOME + "examples/sample.tex", bibfile=bibfile)
    assert "my_file.bib" in os.listdir(str(tmp_path))
def test_merge_duplicate_title_add(bibs, mock_init_sample, mock_input):
    bm.merge(new=[bibs['slipher_guy']])
    loaded_bibs = bm.load()
    assert len(loaded_bibs) == nentries + 1
    assert bibs['slipher_guy'] in loaded_bibs
def test_merge_duplicate_key_rename(bibs, mock_init_sample, mock_input):
    bm.merge(new=[bibs['slipher_dup']])
    loaded_bibs = bm.load()
    assert len(loaded_bibs) == nentries + 1
    assert 'Slipher1913lobAnd' in [e.key for e in loaded_bibs]
def test_merge_base(bibs):
    merged = bm.merge(new=[bibs['hunter']], base=[bibs['stodden']])
    assert len(merged) == 2
    assert merged[0] == bibs['hunter']
    assert merged[1] == bibs['stodden']
def test_merge_duplicate_key_ingnore(bibs, mock_init_sample, mock_input):
    bm.merge(new=[bibs['oliphant_dup']])
    loaded_bibs = bm.load()
    assert len(loaded_bibs) == 17
    assert bibs['oliphant_dup'] in loaded_bibs
Exemple #17
0
def test_build_bib_remote(mock_init):
    bm.merge(u.HOME + "examples/sample.bib")
    lm.build_bib(u.HOME + "examples/sample.tex")
    files = os.listdir(u.HOME + "examples/")
    assert "texsample.bib" in files
def test_merge_duplicate_title_add(bibs, mock_init_sample, mock_input):
    bm.merge(new=[bibs['no_oliphant']])
    loaded_bibs = bm.load()
    assert len(loaded_bibs) == 18
    assert bibs['no_oliphant'] in loaded_bibs
Exemple #19
0
def test_build_bib_user_bibfile(mock_init):
    bm.merge(u.HOME + "examples/sample.bib")
    lm.build_bib(u.HOME + "examples/sample.tex",
                 bibfile=u.HOME + "my_file.bib")
    files = os.listdir(u.HOME)
    assert "my_file.bib" in files