def test_get_file_name(self): path = tempfile.mktemp(prefix='papis-get_name-') open(path, 'w+').close() assert (papis.config.get('file-name') is None) filename = get_file_name(dict(title='blah'), path, suffix='3') assert (re.match(r'^papis-get-name-.*\.data$', filename) is not None) papis.config.set('file-name', '{doc[title]} {doc[author]} {doc[yeary]}') filename = get_file_name(dict(title='blah'), path, suffix='2') assert filename == 'blah-2.data' filename = get_file_name(dict(title='b' * 200), path, suffix='2') assert filename == 'b' * 150 + '-2.data' filename = get_file_name(dict(title='blah'), create_random_pdf(suffix='.pdf'), suffix='2') assert filename == 'blah-2.pdf' filename = get_file_name(dict(title='blah'), create_random_pdf(), suffix='2') assert filename == 'blah-2.pdf' filename = get_file_name(dict(title='blah'), create_random_file(suffix='.yaml'), suffix='2') assert filename == 'blah-2.yaml'
def test_extension(): docs = [ [tests.create_random_pdf(), "pdf"], [tests.create_random_pdf(), "pdf"], [tests.create_random_file(), "data"], [tests.create_random_epub(), "epub"], [tests.create_random_file(suffix='.yaml'), "yaml"], [tests.create_random_file(suffix='.text'), "text"], ] for d in docs: assert(get_document_extension(d[0]) == d[1])
def test_with_bibtex(self): bibstring = """ @article{10.1002/andp.19053221004, author = { A. Einstein }, doi = { 10.1002/andp.19053221004 }, issue = { 10 }, journal = { Ann. Phys. }, pages = { 891--921 }, title = { Zur Elektrodynamik bewegter K\"{o}rper }, type = { article }, volume = { 322 }, year = { 1905 }, } """ bibfile = tempfile.mktemp() pdf = create_random_pdf() with open(bibfile, 'w+') as fd: fd.write(bibstring) self.assertTrue(get_document_extension(pdf) == 'pdf') result = self.invoke([pdf, '--from', 'bibtex', bibfile]) db = papis.database.get() docs = db.query_dict( dict(author="einstein", title="Elektrodynamik bewegter")) self.assertTrue(len(docs) == 1) doc = docs[0] self.assertTrue(len(doc.get_files()) == 1) # This is the original pdf file, it should still be there self.assertTrue(os.path.exists(pdf)) # and it should still be apdf self.assertTrue(get_document_extension(pdf) == 'pdf') self.assertTrue(get_document_extension(doc.get_files()[0]) == 'pdf')
def test_name_and_from_folder(self): pdf = create_random_pdf(suffix='.pdf') result = self.invoke([ '-s', 'author', 'Aristoteles', '--set', 'title', '"The apology of socrates"', '-b', '--folder-name', 'the_apology', pdf ]) self.assertTrue(result.exit_code == 0) db = papis.database.get() docs = db.query_dict(dict(author="Aristoteles")) self.assertTrue(len(docs) == 1) doc = docs[0] assert(os.path.basename(doc.get_main_folder()) == 'the-apology') assert(len(doc.get_files()) == 1) gotpdf = doc.get_files()[0] assert(len(re.split(r'[.]pdf', pdf)) == 2) assert(len(re.split(r'[.]pdf', gotpdf)) == 2) result = self.invoke([ '--from folder', doc.get_main_folder() ]) self.assertTrue(result.exit_code == 0) docs = db.query_dict(dict(author="Aristoteles")) self.assertTrue(len(docs) == 2)
def test_get_default_title_and_author(): assert (get_default_title({'title': 'hello world'}, 'whatever.pdf') == 'hello world') pdf = create_random_pdf(suffix='luces-de-bohemia.pdf') assert (re.match('.*luces de bohemia$', get_default_title(dict(), pdf))) assert (get_default_author({'author': 'Garcilaso de la vega'}, 'whatever.pdf') == 'Garcilaso de la vega') assert (get_default_author(dict(), 'Luces-de-bohemia.pdf') == 'Unknown')
def test_link(self): pdf = create_random_pdf() result = self.invoke([ '-s', 'author', 'Plato', '--set', 'title', 'Republic', '-b', '--link', pdf ]) #self.assertTrue(result.exit_code == 0) db = papis.database.get() docs = db.query_dict(dict(author="Plato")) self.assertTrue(len(docs) == 1) doc = docs[0] self.assertTrue(len(doc.get_files()) == 1) self.assertTrue(os.path.islink(doc.get_files()[0]))
def test_get_file_name(self): pdf = create_random_pdf(suffix='.pdf') path = create_random_file(prefix='papis-get_name-') assert(papis.config.utils.get('add-file-name') is None) filename = get_file_name(dict(title='blah'), path, suffix='3') assert(re.match(r'^papis-get-name-.*\.data$', filename) is not None) # With suffix filename = get_file_name(dict(title='blah'), pdf, suffix='3') assert(len(re.split('[.]pdf', filename)) == 2) # Without suffix filename = get_file_name(dict(title='blah'), pdf) assert(len(re.split('[.]pdf', filename)) == 2) papis.config.utils.set( 'add-file-name', '{doc[title]} {doc[author]} {doc[yeary]}' ) filename = get_file_name(dict(title='blah'), path, suffix='2') assert filename == 'blah-2.data' filename = get_file_name(dict(title='b' * 200), path, suffix='2') assert filename == 'b' * 150 + '-2.data' filename = get_file_name( dict(title='blah'), create_random_pdf(suffix='.pdf'), suffix='2' ) assert filename == 'blah-2.pdf' filename = get_file_name( dict(title='blah'), create_random_pdf(), suffix='2' ) assert filename == 'blah-2.pdf' filename = get_file_name( dict(title='blah'), create_random_file(suffix='.yaml'), suffix='2' ) assert filename == 'blah-2.yaml'
def test_simple_add(self): db = papis.database.get() docs = db.query_dict({'author': 'krishnamurti'}) assert(len(docs) == 1) doc = docs[0] # add N files N = 10 inputfiles = [tests.create_random_pdf() for i in range(N)] old_files = doc.get_files() run(doc, inputfiles) self.assertTrue(len(doc.get_files()) == len(old_files) + N)