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
|
:``o`` or ``ENTER``: Open the submission link with your web browser
|
||||||
:``/``: Open a prompt to switch subreddits
|
:``/``: Open a prompt to switch subreddits
|
||||||
:``f``: Open a prompt to search the current subreddit
|
:``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
|
The ``/`` prompt accepts subreddits in the following formats
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ HELP = """
|
|||||||
`l` or `RIGHT` : Enter the selected submission
|
`l` or `RIGHT` : Enter the selected submission
|
||||||
`/` : Open a prompt to switch subreddits
|
`/` : Open a prompt to switch subreddits
|
||||||
`f` : Open a prompt to search the current subreddit
|
`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]
|
[Submission Mode]
|
||||||
`h` or `LEFT` : Return to subreddit mode
|
`h` or `LEFT` : Return to subreddit mode
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class SubredditPage(Page):
|
|||||||
self.controller = SubredditController(self, keymap=config.keymap)
|
self.controller = SubredditController(self, keymap=config.keymap)
|
||||||
self.content = SubredditContent.from_name(reddit, name, term.loader)
|
self.content = SubredditContent.from_name(reddit, name, term.loader)
|
||||||
self.nav = Navigator(self.content.get)
|
self.nav = Navigator(self.content.get)
|
||||||
self._toggled_subreddit = ''
|
self._toggled_subreddit = None
|
||||||
|
|
||||||
@SubredditController.register(Command('REFRESH'))
|
@SubredditController.register(Command('REFRESH'))
|
||||||
def refresh_content(self, order=None, name=None):
|
def refresh_content(self, order=None, name=None):
|
||||||
@@ -82,14 +82,14 @@ class SubredditPage(Page):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
target =''
|
target =''
|
||||||
if not self.on_frontpage():
|
if not self.content.name == '/r/front':
|
||||||
target = '/r/front'
|
target = '/r/front'
|
||||||
self.set_last_subreddit()
|
self._toggled_subreddit = self.content.name
|
||||||
else:
|
else:
|
||||||
target = self.get_last_subreddit()
|
target = self._toggled_subreddit
|
||||||
|
|
||||||
# target still may be emptystring if this command hasn't yet been used
|
# 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)
|
self.refresh_content(order='ignore',name=target)
|
||||||
|
|
||||||
@SubredditController.register(Command('SUBREDDIT_OPEN'))
|
@SubredditController.register(Command('SUBREDDIT_OPEN'))
|
||||||
@@ -189,16 +189,6 @@ class SubredditPage(Page):
|
|||||||
self.refresh_content(order='ignore',
|
self.refresh_content(order='ignore',
|
||||||
name=page.subreddit_data['name'])
|
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):
|
def _draw_item(self, win, data, inverted):
|
||||||
|
|
||||||
n_rows, n_cols = win.getmaxyx()
|
n_rows, n_cols = win.getmaxyx()
|
||||||
|
|||||||
@@ -225,4 +225,12 @@ def test_subreddit_draw_header(subreddit_page, refresh_token, terminal):
|
|||||||
subreddit_page.refresh_content(name='/r/me/new')
|
subreddit_page.refresh_content(name='/r/me/new')
|
||||||
subreddit_page.draw()
|
subreddit_page.draw()
|
||||||
text = 'My Submissions'.encode('utf-8')
|
text = 'My Submissions'.encode('utf-8')
|
||||||
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
|
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