Skip to content

Commit

Permalink
buttons: Support near narrow in handle_narrow().
Browse files Browse the repository at this point in the history
Tests amended.
  • Loading branch information
preetmishra committed Aug 5, 2020
1 parent 47d85ea commit 82c6867
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
27 changes: 18 additions & 9 deletions tests/ui/test_ui_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -2772,12 +2772,15 @@ def test_handle_link(self, mocker, link, handle_narrow_called):
assert self.handle_narrow.called == handle_narrow_called

@pytest.mark.parametrize(['link', 'is_subscribed', 'stream_id',
'stream_name'], [
(SERVER_URL + '/#narrow/stream/1-Stream-1', True, 1, 'Stream 1'),
(SERVER_URL + '/#narrow/stream/4-Stream-4', False, 4, None),
'stream_name', 'near'], [
(SERVER_URL + '/#narrow/stream/1-Stream-1', True, 1, 'Stream 1', None),
(SERVER_URL + '/#narrow/stream/4-Stream-4', False, 4, None, None),
(SERVER_URL + '/#narrow/stream/1-Stream-1/near/2', True, 1, 'Stream 1',
2),
])
def test_handle_narrow_to_stream(self, mocker, stream_dict, link,
is_subscribed, stream_id, stream_name):
is_subscribed, stream_id, stream_name,
near):
self.controller.model.stream_dict = stream_dict
self.controller.view.set_footer_text = mocker.Mock()
self.controller.narrow_to_stream = mocker.Mock()
Expand All @@ -2786,6 +2789,8 @@ def test_handle_narrow_to_stream(self, mocker, stream_dict, link,

mocked_button.handle_narrow()

if near:
assert mocked_button.message['id'] == near
assert mocked_button.stream_id == stream_id
if is_subscribed:
assert mocked_button.stream_name == stream_name
Expand All @@ -2799,17 +2804,19 @@ def test_handle_narrow_to_stream(self, mocker, stream_dict, link,
assert not self.controller.exit_popup.called

@pytest.mark.parametrize(['link', 'is_subscribed', 'stream_id',
'stream_name', 'topic_name'], [
'stream_name', 'topic_name', 'near'], [
(SERVER_URL + '/#narrow/stream/1-Stream-1/topic/Test', True, 1,
'Stream 1', 'Test'),
'Stream 1', 'Test', None),
(SERVER_URL + '/#narrow/stream/2-Stream-2/topic/Topic.20test', True, 2,
'Stream 2', 'Topic test'),
'Stream 2', 'Topic test', None),
(SERVER_URL + '/#narrow/stream/4-Stream-4/topic/Test', False, 4, None,
None),
None, None),
(SERVER_URL + '/#narrow/stream/1-Stream-1/topic/Test/near/2', True, 1,
'Stream 1', 'Test', 2),
])
def test_handle_narrow_to_topic(self, mocker, stream_dict, link,
is_subscribed, stream_id, stream_name,
topic_name):
topic_name, near):
self.controller.model.stream_dict = stream_dict
self.controller.view.set_footer_text = mocker.Mock()
self.controller.narrow_to_topic = mocker.Mock()
Expand All @@ -2818,6 +2825,8 @@ def test_handle_narrow_to_topic(self, mocker, stream_dict, link,

mocked_button.handle_narrow()

if near:
assert mocked_button.message['id'] == near
assert mocked_button.stream_id == stream_id
if is_subscribed:
assert mocked_button.stream_name == stream_name
Expand Down
4 changes: 4 additions & 0 deletions zulipterminal/ui_tools/buttons.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,10 @@ def handle_narrow(self) -> None:
"""
link_split = self.link.split('/')

if '/near/' in self.link:
self.message = {}
self.message['id'] = int(link_split[-1])

self.stream_id = int(link_split[5].split('-')[0])

# Return if the concerned stream is unsubscribed.
Expand Down

0 comments on commit 82c6867

Please sign in to comment.