From 1dbcf227421ce3618821929fa0a7b92229688ec7 Mon Sep 17 00:00:00 2001 From: mardiqwop Date: Wed, 20 Jul 2016 16:02:34 -0400 Subject: [PATCH] Added tests for subreddit.py's new show_frontpage. Refactored getters and setters. --- CONTROLS.rst | 2 ++ rtv/docs.py | 2 +- rtv/subreddit.py | 20 +++++--------------- tests/test_subreddit.py | 10 +++++++++- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CONTROLS.rst b/CONTROLS.rst index 3d28551..6de2f42 100644 --- a/CONTROLS.rst +++ b/CONTROLS.rst @@ -41,6 +41,8 @@ In subreddit mode you can browse through the top submissions on either the front :``o`` or ``ENTER``: Open the submission link with your web browser :``/``: Open a prompt to switch subreddits :``f``: Open a prompt to search the current subreddit +:``p``: Toggles between FrontPage and last visited subreddit + The ``/`` prompt accepts subreddits in the following formats diff --git a/rtv/docs.py b/rtv/docs.py index 7b15310..5facd30 100644 --- a/rtv/docs.py +++ b/rtv/docs.py @@ -39,7 +39,7 @@ HELP = """ `l` or `RIGHT` : Enter the selected submission `/` : Open a prompt to switch subreddits `f` : Open a prompt to search the current subreddit - 'q' : Toggles between FrontPage and last visited subreddit + 'p' : Toggles between FrontPage and last visited subreddit [Submission Mode] `h` or `LEFT` : Return to subreddit mode diff --git a/rtv/subreddit.py b/rtv/subreddit.py index c15fa62..95001b1 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -30,7 +30,7 @@ class SubredditPage(Page): self.controller = SubredditController(self, keymap=config.keymap) self.content = SubredditContent.from_name(reddit, name, term.loader) self.nav = Navigator(self.content.get) - self._toggled_subreddit = '' + self._toggled_subreddit = None @SubredditController.register(Command('REFRESH')) def refresh_content(self, order=None, name=None): @@ -82,14 +82,14 @@ class SubredditPage(Page): """ target ='' - if not self.on_frontpage(): + if not self.content.name == '/r/front': target = '/r/front' - self.set_last_subreddit() + self._toggled_subreddit = self.content.name else: - target = self.get_last_subreddit() + target = self._toggled_subreddit # target still may be emptystring if this command hasn't yet been used - if not target == '': + if not target == None: self.refresh_content(order='ignore',name=target) @SubredditController.register(Command('SUBREDDIT_OPEN')) @@ -189,16 +189,6 @@ class SubredditPage(Page): self.refresh_content(order='ignore', name=page.subreddit_data['name']) - def on_frontpage(self): - "Returns whether the current page is the front page" - return self.content.name == '/r/front' - - def set_last_subreddit(self): - self._toggled_subreddit = self.content.name - - def get_last_subreddit(self): - return self._toggled_subreddit - def _draw_item(self, win, data, inverted): n_rows, n_cols = win.getmaxyx() diff --git a/tests/test_subreddit.py b/tests/test_subreddit.py index 98dbd54..0a8a9f3 100644 --- a/tests/test_subreddit.py +++ b/tests/test_subreddit.py @@ -225,4 +225,12 @@ def test_subreddit_draw_header(subreddit_page, refresh_token, terminal): subreddit_page.refresh_content(name='/r/me/new') subreddit_page.draw() text = 'My Submissions'.encode('utf-8') - terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text) \ No newline at end of file + terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text) + +def test_subreddit_frontpage_toggle(subreddit_page, terminal): + with mock.patch.object(terminal, 'prompt_input'): + terminal.prompt_input.return_value = 'aww' + subreddit_page.controller.trigger('/') + assert subreddit_page.content.name == '/r/aww' + subreddit_page.controller.trigger('p') + assert subreddit_page.content.name == '/r/front'