Merge pull request #198 from ksunden/import
ENH: Don't fail on import, warn instead
This commit is contained in:
commit
e28bbc62fe
@ -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]
|
||||||
|
try:
|
||||||
rp.push_paper(p, overwrite=args.overwrite)
|
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…
x
Reference in New Issue
Block a user