From 79d1f97911a5a65c2cb2b495193432adabbf42d6 Mon Sep 17 00:00:00 2001 From: Tomaz Muraus Date: Wed, 29 May 2013 15:36:10 -0700 Subject: Expose instantiated interpreter instance and assign it to the 'interpreter' variable on the App instance. --- cliff/app.py | 13 +++++++------ tests/test_app.py | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cliff/app.py b/cliff/app.py index d823386..7713df1 100644 --- a/cliff/app.py +++ b/cliff/app.py @@ -73,6 +73,7 @@ class App(object): self.interactive_app_factory = interactive_app_factory self.parser = self.build_option_parser(description, version) self.interactive_mode = False + self.interpreter = None def build_option_parser(self, description, version, argparse_kwargs=None): @@ -224,12 +225,12 @@ class App(object): return def interact(self): - interpreter = self.interactive_app_factory(self, - self.command_manager, - self.stdin, - self.stdout, - ) - interpreter.cmdloop() + self.interpreter = self.interactive_app_factory(self, + self.command_manager, + self.stdin, + self.stdout, + ) + self.interpreter.cmdloop() return 0 def run_subcommand(self, argv): diff --git a/tests/test_app.py b/tests/test_app.py index ce6bf62..db80bbc 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -46,7 +46,9 @@ def test_interactive_mode_cmdloop(): app.interactive_app_factory = mock.MagicMock( name='interactive_app_factory' ) + assert app.interpreter is None app.run([]) + assert app.interpreter is not None app.interactive_app_factory.return_value.cmdloop.assert_called_once_with() -- cgit v1.2.1