Code review comment for lp:~frankban/juju-quickstart/interactive-errors

Revision history for this message
Francesco Banconi (frankban) wrote :

Reviewers: mp+241276_code.launchpad.net,

Message:
Please take a look.

Description:
Do not hide errors on interactive session.

https://code.launchpad.net/~frankban/juju-quickstart/interactive-errors/+merge/241276

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/166420044/

Affected files (+12, -2 lines):
   A [revision details]
   M quickstart/cli/views.py
   M quickstart/tests/cli/test_views.py

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision:
<email address hidden>
+New revision:
<email address hidden>

Index: quickstart/cli/views.py
=== modified file 'quickstart/cli/views.py'
--- quickstart/cli/views.py 2014-10-09 13:35:12 +0000
+++ quickstart/cli/views.py 2014-11-10 14:11:11 +0000
@@ -94,7 +94,10 @@
  proposed solution to build multi-views CLI applications in Quickstart.
  """

-from __future__ import unicode_literals
+from __future__ import (
+ print_function,
+ unicode_literals,
+)

  import copy
  import functools
@@ -131,6 +134,9 @@
          # Start the Urwid interactive session (main loop).
          loop.run()
      except ui.AppExit as err:
+ # The print below ensures the screen is properly refreshed when
+ # exiting the interactive session.
+ print('interactive session closed')
          return err.return_value

Index: quickstart/tests/cli/test_views.py
=== modified file 'quickstart/tests/cli/test_views.py'
--- quickstart/tests/cli/test_views.py 2014-10-10 08:54:46 +0000
+++ quickstart/tests/cli/test_views.py 2014-11-10 14:11:11 +0000
@@ -110,8 +110,10 @@
          view = mock.Mock()
          run_side_effect = ui.AppExit('bad wolf')
          with self.patch_setup_urwid_app(run_side_effect=run_side_effect):
- return_value = views.show(view)
+ with helpers.mock_print as mock_print:
+ return_value = views.show(view)
          self.assertEqual('bad wolf', return_value)
+ mock_print.assert_called_once_with('interactive session closed')

      def test_view_arguments(self):
          # The view is invoked passing the app and all the optional show

« Back to merge proposal