Merge branch 'master' into pr-191

main
Fabien C. Y. Benureau 6 years ago committed by GitHub
commit 232158db68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -104,7 +104,14 @@ def command(conf, args):
keys = args.keys or papers.keys() keys = args.keys or papers.keys()
for k in keys: for k in keys:
p = papers[k] p = papers[k]
rp.push_paper(p, overwrite=args.overwrite) try:
rp.push_paper(p, overwrite=args.overwrite)
except repo.CiteKeyCollision:
ui.warning("{} already in repository, use '-O' to overwrite".format(
color.dye_out(p.citekey, 'citekey')
)
)
continue
ui.info('{} imported.'.format(color.dye_out(p.citekey, 'citekey'))) ui.info('{} imported.'.format(color.dye_out(p.citekey, 'citekey')))
docfile = bibstruct.extract_docfile(p.bibdata) docfile = bibstruct.extract_docfile(p.bibdata)
if docfile is None: if docfile is None:

@ -17,6 +17,22 @@ institution = {Stanford InfoLab},
} }
""" """
bibtex_external_alt = """
@techreport{Page99,
number = {1999-66},
month = {November},
author = {Lawrence Page and Sergey Brin and Rajeev Motwani and Terry Winograd},
note = {Previous number = SIDL-WP-1999-0120},
title = {The PageRank Citation Ranking: Bringing Order to the Web.},
type = {Technical Report},
publisher = {Stanford InfoLab},
year = {9999},
institution = {Stanford InfoLab},
url = {http://ilpubs.stanford.edu:8090/422/},
abstract = "This is not a real entry, it is just here to test overwriting fails on import. it must have a different year than the str_fixture bibtex_external0, but must have the same citekey for the test to be valid.",
}
"""
bibtex_raw0 = """@techreport{ bibtex_raw0 = """@techreport{
Page99, Page99,
author = "Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry", author = "Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry",

@ -811,7 +811,7 @@ class TestUsecase(DataCommandTestCase):
def test_edit(self): def test_edit(self):
bib = str_fixtures.bibtex_external0 bib = str_fixtures.bibtex_external0
bib1 = re.sub('year = \{1999\}', 'year = {2007}', bib) bib1 = re.sub(r'year = \{1999\}', 'year = {2007}', bib)
bib2 = re.sub('Lawrence Page', 'Lawrence Ridge', bib1) bib2 = re.sub('Lawrence Page', 'Lawrence Ridge', bib1)
bib3 = re.sub('Page99', 'Ridge07', bib2) bib3 = re.sub('Page99', 'Ridge07', bib2)
@ -884,14 +884,19 @@ class TestUsecase(DataCommandTestCase):
self.assertEqual(1 + 1, len(outs[-1].split('\n'))) self.assertEqual(1 + 1, len(outs[-1].split('\n')))
def test_import_does_not_overwrite(self): def test_import_does_not_overwrite(self):
with FakeFileOpen(self.fs)('data/real.bib', 'w') as f:
f.write(str_fixtures.bibtex_external0)
with FakeFileOpen(self.fs)('data/fake.bib', 'w') as f:
f.write(str_fixtures.bibtex_external_alt)
cmds = ['pubs init', cmds = ['pubs init',
'pubs import data/ Page99', 'pubs import data/real.bib Page99',
'pubs import data/', 'pubs list',
'pubs list' 'pubs import data/fake.bib Page99',
'pubs list',
] ]
outs = self.execute_cmds(cmds)
self.assertEqual(outs[-3], outs[-1])
with self.assertRaises(FakeSystemExit):
self.execute_cmds(cmds)
def test_import_overwrites(self): def test_import_overwrites(self):
cmds = ['pubs init', cmds = ['pubs init',
@ -1094,7 +1099,7 @@ class TestCache(DataCommandTestCase):
DataCommandTestCase.setUp(self, nsec_stat=nsec_stat) DataCommandTestCase.setUp(self, nsec_stat=nsec_stat)
bib = str_fixtures.bibtex_external0 bib = str_fixtures.bibtex_external0
bib1 = re.sub('year = \{1999\}', 'year = {2007}', bib) bib1 = re.sub(r'year = \{1999\}', 'year = {2007}', bib)
line = '[Page99] Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n' line = '[Page99] Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n'
line1 = re.sub('1999', '2007', line) line1 = re.sub('1999', '2007', line)

Loading…
Cancel
Save