diff options
author | Tomaz Muraus <tomaz@tomaz.me> | 2013-05-29 15:36:10 -0700 |
---|---|---|
committer | Tomaz Muraus <tomaz@tomaz.me> | 2013-05-29 15:38:36 -0700 |
commit | 79d1f97911a5a65c2cb2b495193432adabbf42d6 (patch) | |
tree | 8c8df55a33922dfe85ea4fc734c59b264f110642 | |
parent | a823781a2c7ab9970b6a11b2521a0b07554d9a35 (diff) | |
download | cliff-79d1f97911a5a65c2cb2b495193432adabbf42d6.tar.gz |
Expose instantiated interpreter instance and assign it to the 'interpreter'
variable on the App instance.
-rw-r--r-- | cliff/app.py | 13 | ||||
-rw-r--r-- | 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() |