Added tests for subreddit.py's new show_frontpage. Refactored getters and setters.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -226,3 +226,11 @@ def test_subreddit_draw_header(subreddit_page, refresh_token, terminal):
|
||||
subreddit_page.draw()
|
||||
text = 'My Submissions'.encode('utf-8')
|
||||
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'
|
||||
|
||||
Reference in New Issue
Block a user