summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaz Muraus <tomaz@tomaz.me>2013-05-29 15:36:10 -0700
committerTomaz Muraus <tomaz@tomaz.me>2013-05-29 15:38:36 -0700
commit79d1f97911a5a65c2cb2b495193432adabbf42d6 (patch)
tree8c8df55a33922dfe85ea4fc734c59b264f110642
parenta823781a2c7ab9970b6a11b2521a0b07554d9a35 (diff)
downloadcliff-79d1f97911a5a65c2cb2b495193432adabbf42d6.tar.gz
Expose instantiated interpreter instance and assign it to the 'interpreter'
variable on the App instance.
-rw-r--r--cliff/app.py13
-rw-r--r--tests/test_app.py2
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()