test for every command except websearch and update
This commit is contained in:
parent
f82b913a80
commit
145710b928
@ -16,3 +16,34 @@ doe2013.bibentry.fields['title'] = u'Nice title.'
|
|||||||
doe2013.bibentry.fields['year'] = u'2013'
|
doe2013.bibentry.fields['year'] = u'2013'
|
||||||
doe2013.bibentry.persons['author'] = [Person(u'John Doe')]
|
doe2013.bibentry.persons['author'] = [Person(u'John Doe')]
|
||||||
doe2013.citekey = doe2013.generate_citekey()
|
doe2013.citekey = doe2013.generate_citekey()
|
||||||
|
|
||||||
|
|
||||||
|
pagerankbib = """
|
||||||
|
@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 = {1999},
|
||||||
|
institution = {Stanford InfoLab},
|
||||||
|
url = {http://ilpubs.stanford.edu:8090/422/},
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
pagerankbib_generated = """@techreport{
|
||||||
|
Page99,
|
||||||
|
author = "Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry",
|
||||||
|
publisher = "Stanford InfoLab",
|
||||||
|
title = "The PageRank Citation Ranking: Bringing Order to the Web.",
|
||||||
|
url = "http://ilpubs.stanford.edu:8090/422/",
|
||||||
|
number = "1999-66",
|
||||||
|
month = "November",
|
||||||
|
note = "Previous number = SIDL-WP-1999-0120",
|
||||||
|
year = "1999",
|
||||||
|
institution = "Stanford InfoLab"
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
@ -1,6 +1,7 @@
|
|||||||
import sys, os, shutil, glob
|
import sys, os, shutil, glob
|
||||||
import unittest
|
import unittest
|
||||||
import pkgutil
|
import pkgutil
|
||||||
|
import re
|
||||||
|
|
||||||
import testenv
|
import testenv
|
||||||
import fake_filesystem
|
import fake_filesystem
|
||||||
@ -11,6 +12,8 @@ from papers import papers_cmd
|
|||||||
from papers import color, files
|
from papers import color, files
|
||||||
from papers.p3 import io, input
|
from papers.p3 import io, input
|
||||||
|
|
||||||
|
import fixtures
|
||||||
|
|
||||||
|
|
||||||
# code for fake fs
|
# code for fake fs
|
||||||
|
|
||||||
@ -117,8 +120,9 @@ class FakeInput():
|
|||||||
def as_global(self):
|
def as_global(self):
|
||||||
for mdname, md in mod_list:
|
for mdname, md in mod_list:
|
||||||
md.input = self
|
md.input = self
|
||||||
if mdname == 'papers.files':
|
md.editor_input = self
|
||||||
md.editor_input = self
|
# if mdname.endswith('files'):
|
||||||
|
# md.editor_input = self
|
||||||
|
|
||||||
def add_input(self, inp):
|
def add_input(self, inp):
|
||||||
self.inputs.append(inp)
|
self.inputs.append(inp)
|
||||||
@ -131,7 +135,7 @@ class FakeInput():
|
|||||||
|
|
||||||
# putting it all together
|
# putting it all together
|
||||||
|
|
||||||
def _execute_cmds(cmds, fs = None):
|
def _execute_cmds(cmds, test_instance = None, fs = None):
|
||||||
""" Execute a list of commands, and capture their output
|
""" Execute a list of commands, and capture their output
|
||||||
|
|
||||||
A command can be a string, or a tuple of size 2 or 3.
|
A command can be a string, or a tuple of size 2 or 3.
|
||||||
@ -158,7 +162,8 @@ def _execute_cmds(cmds, fs = None):
|
|||||||
if len(cmd) == 3:
|
if len(cmd) == 3:
|
||||||
actual_out = color.undye(stdout.getvalue())
|
actual_out = color.undye(stdout.getvalue())
|
||||||
correct_out = color.undye(cmd[2])
|
correct_out = color.undye(cmd[2])
|
||||||
self.assertEqual(actual_out, correct_out)
|
if test_instance is not None:
|
||||||
|
test_instance.assertEqual(actual_out, correct_out)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
assert type(cmd) == str
|
assert type(cmd) == str
|
||||||
@ -297,19 +302,73 @@ class TestUsecase(unittest.TestCase):
|
|||||||
with self.assertRaises(SystemExit):
|
with self.assertRaises(SystemExit):
|
||||||
cmds = ['papers init',
|
cmds = ['papers init',
|
||||||
('papers add', ['abc', 'n']),
|
('papers add', ['abc', 'n']),
|
||||||
('papers add', ['abc', 'y', 'abc', 'n'])
|
('papers add', ['abc', 'y', 'abc', 'n']),
|
||||||
|
'papers add -b data/pagerank.bib',
|
||||||
|
('papers edit Page99', ['', 'a']),
|
||||||
]
|
]
|
||||||
|
|
||||||
_execute_cmds(cmds)
|
_execute_cmds(cmds)
|
||||||
|
|
||||||
def test_editor_success(self):
|
def test_editor_success(self):
|
||||||
bibpath = real_os.path.join(real_os.path.dirname(__file__), 'data', 'pagerank.bib')
|
|
||||||
with real_open(bibpath, 'r') as f:
|
|
||||||
bibtext = f.read()
|
|
||||||
|
|
||||||
cmds = ['papers init',
|
cmds = ['papers init',
|
||||||
('papers add', [bibtext]),
|
('papers add', [fixtures.pagerankbib]),
|
||||||
('papers remove Page99', ['y']),
|
('papers remove Page99', ['y']),
|
||||||
]
|
]
|
||||||
|
|
||||||
_execute_cmds(cmds)
|
_execute_cmds(cmds)
|
||||||
|
|
||||||
|
def test_edit(self):
|
||||||
|
bib = fixtures.pagerankbib
|
||||||
|
bib1 = re.sub('year = \{1999\}', 'year = {2007}', bib)
|
||||||
|
bib2 = re.sub('Lawrence Page', 'Lawrence Ridge', bib1)
|
||||||
|
bib3 = re.sub('Page99', 'Ridge07', bib2)
|
||||||
|
|
||||||
|
line = '0: [Page99] L. Page et al. "The PageRank Citation Ranking Bringing Order to the Web" (1999) \n'
|
||||||
|
line1 = re.sub('1999', '2007', line)
|
||||||
|
line2 = re.sub('L. Page', 'L. Ridge', line1)
|
||||||
|
line3 = re.sub('Page99', 'Ridge07', line2)
|
||||||
|
|
||||||
|
cmds = ['papers init',
|
||||||
|
'papers add -b data/pagerank.bib',
|
||||||
|
('papers list', [], line),
|
||||||
|
('papers edit Page99', [bib1]),
|
||||||
|
('papers list', [], line1),
|
||||||
|
('papers edit Page99', [bib2]),
|
||||||
|
('papers list', [], line2),
|
||||||
|
('papers edit Page99', [bib3]),
|
||||||
|
('papers list', [], line3),
|
||||||
|
]
|
||||||
|
|
||||||
|
_execute_cmds(cmds, test_instance = self)
|
||||||
|
|
||||||
|
def test_export(self):
|
||||||
|
cmds = ['papers init',
|
||||||
|
('papers add', [fixtures.pagerankbib]),
|
||||||
|
'papers export Page99',
|
||||||
|
('papers export Page99 -f bibtex', [], fixtures.pagerankbib_generated),
|
||||||
|
'papers export Page99 -f bibyaml',
|
||||||
|
]
|
||||||
|
|
||||||
|
_execute_cmds(cmds)
|
||||||
|
|
||||||
|
def test_import(self):
|
||||||
|
cmds = ['papers init',
|
||||||
|
'papers import data/',
|
||||||
|
'papers list'
|
||||||
|
]
|
||||||
|
|
||||||
|
outs = _execute_cmds(cmds)
|
||||||
|
self.assertEqual(4+1, len(outs[-1].split('\n')))
|
||||||
|
|
||||||
|
def test_open(self):
|
||||||
|
cmds = ['papers init',
|
||||||
|
'papers add -b data/pagerank.bib',
|
||||||
|
'papers open Page99'
|
||||||
|
]
|
||||||
|
|
||||||
|
with self.assertRaises(SystemExit):
|
||||||
|
_execute_cmds(cmds)
|
||||||
|
|
||||||
|
with self.assertRaises(SystemExit):
|
||||||
|
cmds[-1] == 'papers open Page8'
|
||||||
|
_execute_cmds(cmds)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user