Use CLI test framework; fix bug in fake exit
* uses new Gramps() test framework in cli_test.py * test_util.Gramps allows default exit code
This commit is contained in:
parent
d5aa7067ea
commit
01ef775491
@ -28,10 +28,7 @@ import subprocess
|
|||||||
|
|
||||||
from gramps.gen.const import TEMP_DIR
|
from gramps.gen.const import TEMP_DIR
|
||||||
from gramps.gen.dbstate import DbState
|
from gramps.gen.dbstate import DbState
|
||||||
from ..grampscli import CLIManager
|
from gramps.test.test_util import Gramps
|
||||||
from ..user import User
|
|
||||||
from ..arghandler import ArgHandler
|
|
||||||
from ..argparser import ArgParser
|
|
||||||
|
|
||||||
test_ged = """0 HEAD
|
test_ged = """0 HEAD
|
||||||
1 SOUR min1r.ged min 1-rec
|
1 SOUR min1r.ged min 1-rec
|
||||||
@ -167,34 +164,20 @@ class CLITest(unittest.TestCase):
|
|||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
if os.path.exists(example_copy):
|
if os.path.exists(example_copy):
|
||||||
os.remove(example_copy)
|
os.remove(example_copy)
|
||||||
|
self.call("--remove", "Test: test1_cli")
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
from gramps.cli.clidbman import CLIDbManager
|
self.gramps = Gramps()
|
||||||
self.tearDown()
|
self.tearDown()
|
||||||
self.dbstate = DbState()
|
|
||||||
#we need a manager for the CLI session
|
def call(self, *args, stdin=None):
|
||||||
self.user = User(auto_accept=True, quiet=False)
|
self.gramps.run(*args, stdin=stdin)
|
||||||
self.climanager = CLIManager(self.dbstate, setloader=True, user=self.user)
|
|
||||||
self.clidbmanager = CLIDbManager(self.dbstate)
|
|
||||||
#load the plugins
|
|
||||||
self.climanager.do_reg_plugins(self.dbstate, uistate=None)
|
|
||||||
|
|
||||||
def test1a_cli(self):
|
def test1a_cli(self):
|
||||||
# handle the arguments
|
self.call("-C", "Test: test1_cli", "--import", example)
|
||||||
argparser = ArgParser([None, "-C", "Test: test1_cli", "--import", example])
|
|
||||||
argparser.need_gui() # initializes some variables
|
|
||||||
handler = ArgHandler(self.dbstate, argparser, self.climanager)
|
|
||||||
# create a manager to manage the database
|
|
||||||
handler.handle_args_cli(should_exit=False)
|
|
||||||
|
|
||||||
def test1b_cli(self):
|
def test1b_cli(self):
|
||||||
# handle the arguments
|
self.call("-O", "Test: test1_cli", "--export", example_copy)
|
||||||
argparser = ArgParser([None, "-O", "Test: test1_cli", "--export", example_copy])
|
|
||||||
argparser.need_gui() # initializes some variables
|
|
||||||
handler = ArgHandler(self.dbstate, argparser, self.climanager)
|
|
||||||
# create a manager to manage the database
|
|
||||||
handler.handle_args_cli(should_exit=False)
|
|
||||||
self.clidbmanager.remove_database("Test: test1_cli")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@ -217,7 +217,7 @@ class TestLogger():
|
|||||||
|
|
||||||
### Support for testing CLI
|
### Support for testing CLI
|
||||||
|
|
||||||
def new_exit(edit_code):
|
def new_exit(edit_code=None):
|
||||||
raise SystemExit()
|
raise SystemExit()
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
|
Loading…
x
Reference in New Issue
Block a user