From cc3928ef4bb033b4d2548efc7ed6867f382f1cf4 Mon Sep 17 00:00:00 2001 From: Fabien Benureau Date: Thu, 4 Jul 2013 18:05:53 +0100 Subject: [PATCH] fake editor_input --- papers/commands/add_cmd.py | 2 +- tests/test_usecase.py | 40 +++++++++++++++++++++++++++++++++----- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/papers/commands/add_cmd.py b/papers/commands/add_cmd.py index 57f4399..50b8bae 100644 --- a/papers/commands/add_cmd.py +++ b/papers/commands/add_cmd.py @@ -47,7 +47,7 @@ def command(args): question='Invalid bibfile. Edit again ?', default='y') if not cont: - ui.exit() + ui.exit(0) p = Paper(bibentry=bib, citekey=key) else: p = Paper.load(bibfile) diff --git a/tests/test_usecase.py b/tests/test_usecase.py index d8c717c..8226a3b 100644 --- a/tests/test_usecase.py +++ b/tests/test_usecase.py @@ -8,7 +8,7 @@ import fake_filesystem_shutil import fake_filesystem_glob from papers import papers_cmd -from papers import color +from papers import color, files from papers.p3 import io, input @@ -43,8 +43,13 @@ def _create_fake_fs(): fake_glob = fake_filesystem_glob.FakeGlobModule(fake_fs) fake_fs.CreateDirectory(fake_os.path.expanduser('~')) - __builtins__['open'] = fake_open - __builtins__['file'] = fake_open + + try: + __builtins__.open = fake_open + __builtins__.file = fake_open + except AttributeError: + __builtins__['open'] = fake_open + __builtins__['file'] = fake_open sys.modules['os'] = fake_os sys.modules['shutil'] = fake_shutil @@ -53,6 +58,8 @@ def _create_fake_fs(): for mdname, md in mod_list: md.os = fake_os md.shutil = fake_shutil + md.open = fake_open + md.file = fake_open return fake_fs @@ -152,7 +159,7 @@ def _execute_cmds(cmds, fs = None): assert type(cmd) == str _, stdout, stderr = redirect(papers_cmd.execute)(cmd.split()) - print stderr + assert(stderr.getvalue() == '') outs.append(color.undye(stdout.getvalue())) return outs @@ -210,7 +217,7 @@ class TestInput(unittest.TestCase): with self.assertRaises(IndexError): input() - def test_input(self): + def test_input2(self): other_input = FakeInput(['yes', 'no']) other_input.as_global() self.assertEqual(color.input(), 'yes') @@ -218,6 +225,14 @@ class TestInput(unittest.TestCase): with self.assertRaises(IndexError): color.input() + def test_editor_input(self): + other_input = FakeInput(['yes', 'no']) + other_input.as_global() + self.assertEqual(files.editor_input(), 'yes') + self.assertEqual(files.editor_input(), 'no') + with self.assertRaises(IndexError): + color.input() + class TestUsecase(unittest.TestCase): @@ -272,4 +287,19 @@ class TestUsecase(unittest.TestCase): _execute_cmds(cmds) + def test_editor(self): + + with self.assertRaises(SystemExit): + cmds = ['papers init', + ('papers add', ['abc', 'n']) + ] + + _execute_cmds(cmds) + + +# if __name__ == "__main__": +# cmds = ['papers init', +# 'papers add', ['', 'n']] +# +# _execute_cmds(cmds)