def test_init_scratch(mock_home): # init from scratch: shutil.rmtree(u.HOME, ignore_errors=True) bm.init(bibfile=None) assert set(os.listdir(u.HOME)) == set(["config", "examples"]) assert filecmp.cmp(u.HOME + "config", u.ROOT + "config") assert set(os.listdir(u.HOME+"examples")) \ == set(['aastex62.cls', 'apj_hyperref.bst', 'sample.bib', 'sample.tex', 'top-apj.tex'])
def test_init_from_scratch(mock_home): shutil.rmtree(u.HOME, ignore_errors=True) bm.init(bibfile=None) assert set(os.listdir(u.HOME)) == set(["config", "examples", "pdf"]) with open(u.HOME + "config", 'r') as f: home = f.read() with open(u.ROOT + "config", 'r') as f: root = f.read() assert home == root.replace('HOME/', u.HOME) assert set(os.listdir(u.HOME+"examples")) \ == set(['aastex62.cls', 'apj_hyperref.bst', 'sample.bib', 'sample.tex', 'top-apj.tex'])
def test_set_home_merge(tmp_path, bibs, mock_init): new_home = f'{tmp_path}/bm' os.mkdir(f'{new_home}') bib1, bib2 = bibs["beaulieu_apj"], bibs["stodden"] bib1.pdf, bib2.pdf = 'file1.pdf', 'file2.pdf' bm.save([bib1]) shutil.copy(u.BM_DATABASE(), f'{new_home}/bm_database.pickle') bm.export([bib1], f'{new_home}/bm_bibliography.bib', meta=True) bm.export([bib2], f'{new_home}/other.bib', meta=True) bm.init(f'{new_home}/other.bib') cm.set('home', new_home) # Check DBs are merged: bibs = bm.load() assert len(bibs) == 2 assert bibs[0].content == bib1.content assert bibs[1].content == bib2.content # Check both meta exist: assert bibs[0].pdf == 'file1.pdf' assert bibs[1].pdf == 'file2.pdf'
def mock_init_sample(mock_home): shutil.rmtree(u.HOME, ignore_errors=True) bm.init(bibfile=u.ROOT + "examples/sample.bib")
def mock_init(mock_home): shutil.rmtree(u.HOME, ignore_errors=True) bm.init(bibfile=None)