def test_no_tab(self): self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", lambda m: self._display(m["view1"])) ]) self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) with self.assertRaises(KeyError): self.widget._w.contents["header"]
def test_swtich_tab_when_no_tab(self): self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", lambda m: self._display(m["view1"])) ]) self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) self.widget.keypress((0,), "tab") self.assertIsNone(self.new_widget) self.widget.keypress((0,), "shift tab") self.assertIsNone(self.new_widget)
def setUp(self): self.displayer_context = mock.Mock() self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", self._view1), ("View 2", self._view2), ("View 3", self._view3) ]) self.context = mock.Mock() self.context.config.keys = dict() self.controller = mock.Mock() self.controller.open_view = mock.Mock(side_effect=self._open_view) self.test_message = dict(view1="view1", view2="view2", view3="view3") self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) self.new_widget = None
class TestDetailWidget(unittest.TestCase): def setUp(self): self.displayer_context = mock.Mock() self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", self._view1), ("View 2", self._view2), ("View 3", self._view3) ]) self.context = mock.Mock() self.context.config.keys = dict() self.controller = mock.Mock() self.controller.open_view = mock.Mock(side_effect=self._open_view) self.test_message = dict(view1="view1", view2="view2", view3="view3") self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) self.new_widget = None def _view1(self, message): return self._display(message["view1"]) def _view2(self, message): return self._display(message["view2"]) def _view3(self, message): return self._display(message["view3"]) def _display(self, message): return View([Group("Title", [Text(message)])]) def _open_view(self, widget, push_prev): self.new_widget = widget def test_render(self): self.assertEqual( render_to_content(self.widget._w.contents["body"][0], (7, 2)), render_widgets_to_content([ urwid.AttrMap(urwid.Text("Title"), "view-title"), urwid.AttrMap(urwid.Text("view1"), "view-item") ], (7, 2)) ) def test_next_view(self): self.widget.keypress((0,), "tab") self.assertIsNotNone(self.new_widget) self.assertEqual(self.new_widget.index, 1) self.widget = self.new_widget self.widget.keypress((0,), "tab") self.assertIsNot(self.new_widget, self.widget) self.assertEqual(self.new_widget.index, 2) self.widget = self.new_widget self.widget.keypress((0,), "tab") self.assertIsNot(self.new_widget, self.widget) self.assertEqual(self.new_widget.index, 0) def test_prev_view(self): self.widget.keypress((0,), "shift tab") self.assertIsNotNone(self.new_widget) self.assertEqual(self.new_widget.index, 2) self.widget = self.new_widget self.widget.keypress((0,), "shift tab") self.assertIsNot(self.new_widget, self.widget) self.assertEqual(self.new_widget.index, 1) self.widget = self.new_widget self.widget.keypress((0,), "shift tab") self.assertIsNot(self.new_widget, self.widget) self.assertEqual(self.new_widget.index, 0) def test_no_tab(self): self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", lambda m: self._display(m["view1"])) ]) self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) with self.assertRaises(KeyError): self.widget._w.contents["header"] def test_swtich_tab_when_no_tab(self): self.displayer_context.displayer.get_views = mock.Mock(return_value=[ ("View 1", lambda m: self._display(m["view1"])) ]) self.widget = DetailWidget( self.test_message, self.displayer_context, index=0, controller=self.controller, context=self.context) self.widget.keypress((0,), "tab") self.assertIsNone(self.new_widget) self.widget.keypress((0,), "shift tab") self.assertIsNone(self.new_widget) def test_open_search(self): self.widget.keypress((0,), "/") self.controller.open_edit.assert_called_with(self.widget.search_widget) def test_clear_search(self): self.widget._clear_search() self.controller.close_edit.assert_called_with() def test_open_summary(self): self.widget.keypress((0,), "q") self.controller.back.assert_called_with() def test_search(self): self.widget.search_widget.keypress((4,), "v") self.widget.search_widget.keypress((4,), "i") self.widget.search_widget.keypress((4,), "e") self.widget.search_widget.keypress((4,), "w") self.widget.search_widget.keypress((4,), "enter") match = render_widgets_to_content( [urwid.Text(("view-title", "Title")), urwid.Text([("match", "view"), ("view-item", "1")])], (5, 3) ) no_match = render_widgets_to_content( [urwid.Text(("view-title", "Title")), urwid.Text(("view-item", "view1"))], (5, 3) ) self.assertEqual( render_to_content(self.widget.content_widget, (5, 3)), match) self.widget.keypress((0,), "n") self.assertEqual( render_to_content(self.widget.content_widget, (5, 3)), no_match) self.widget.keypress((0,), "N") self.assertEqual( render_to_content(self.widget.content_widget, (5, 3)), match) self.widget.keypress((0,), "N") self.assertEqual( render_to_content(self.widget.content_widget, (5, 3)), no_match) def test_open_failed(self): self.widget._open(10) self.controller.open_error.assert_called_with() def test_update_info(self): self.widget.update_info() self.controller._update_info.assert_called_with(self.widget, "View 1")