Ejemplo n.º 1
0
def test_update_edited(mock_init):
    # Simulate older config with a missing parameter, but not default values:
    with open(u.HOME + "config", "w") as f:
        f.writelines("[BIBMANAGER]\n"
                     "style = autumn\n"
                     "text_editor = vi\n"
                     "paper = letter\n")
    cm.update_keys()
    assert not filecmp.cmp(u.HOME + "config", u.ROOT + "config")
    assert cm.get("style") == "autumn"
    assert cm.get("text_editor") == "vi"
    assert cm.get("paper") == "letter"
    assert cm.get("ads_token") == "None"
    assert cm.get("ads_display") == "20"
Ejemplo n.º 2
0
def test_set_editor(mock_init):
    # This is the only way to make sure vi is valid I can think of:
    if shutil.which("vi") is not None:
        cm.set("text_editor", "vi")
        assert cm.get("text_editor") == "vi"
    else:
        pass
Ejemplo n.º 3
0
def test_set_home_success(capsys, tmp_path, mock_init_sample):
    new_home = f'{tmp_path}/bm'
    cm.set('home', new_home)
    assert cm.get('home') == new_home + '/'
    # 'constants' now point to new home:
    assert u.BM_DATABASE() == f'{new_home}/bm_database.pickle'
    assert u.BM_BIBFILE() == f'{new_home}/bm_bibliography.bib'
    assert u.BM_TMP_BIB() == f'{new_home}/tmp_bibliography.bib'
    assert u.BM_CACHE() == f'{new_home}/cached_ads_query.pickle'
    assert u.BM_HISTORY_SEARCH() == f'{new_home}/history_search'
    assert u.BM_HISTORY_ADS() == f'{new_home}/history_ads_search'
    assert u.BM_PDF() == f'{new_home}/pdf/'
    captured = capsys.readouterr()
    assert captured.out == f'home updated to: {new_home}/.\n'
    # 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'])
Ejemplo n.º 4
0
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'])
Ejemplo n.º 5
0
def test_set_ads_display(mock_init):
    cm.set("ads_display", "50")
    assert cm.get("ads_display") == "50"
Ejemplo n.º 6
0
def test_set_ads_token(mock_init):
    cm.set("ads_token", "abc12345")
    assert cm.get("ads_token") == "abc12345"
Ejemplo n.º 7
0
def test_set_paper(mock_init):
    cm.set("paper", "A4")
    assert cm.get("paper") == "A4"
Ejemplo n.º 8
0
def test_set_editor_default(mock_init):
    cm.set("text_editor", "default")
    assert cm.get("text_editor") == "default"
Ejemplo n.º 9
0
def test_set_style(mock_init):
    cm.set("style", "fruity")
    assert cm.get("style") == "fruity"
Ejemplo n.º 10
0
def test_get_raise(mock_init):
    with pytest.raises(
            ValueError,
            match="'invalid_param' is not a valid bibmanager config parameter."
    ):
        cm.get("invalid_param")
Ejemplo n.º 11
0
def test_get(mock_init):
    assert cm.get("style") == "autumn"
    assert cm.get("text_editor") == "default"
    assert cm.get("paper") == "letter"
    assert cm.get("ads_token") == "None"
    assert cm.get("ads_display") == "20"