add test for user pages

This commit is contained in:
woorst
2018-09-15 18:06:31 -04:00
parent fb18ee4c3d
commit e6157c5e80
2 changed files with 53 additions and 14 deletions

View File

@@ -48,6 +48,9 @@ SUBREDDIT_PROMPTS = OrderedDict([
('user-1', ('/u/spez', '/u/spez', None)),
('user-new', ('/u/spez/new', '/u/spez', 'new')),
('user-top-all', ('/u/spez/top-all', '/u/spez', 'top-all')),
('user-overview', ('/u/spez/overview', '/u/spez/overview', None)),
('user-submitted', ('/u/spez/submitted', '/u/spez/submitted', None)),
('user-comments', ('/u/spez/comments', '/u/spez/comments', None)),
('multi-0', ('/user/multi-mod/m/art', '/u/multi-mod/m/art', None)),
('multi-1', ('/u/multi-mod/m/art', '/u/multi-mod/m/art', None)),
('multi-top', ('/u/multi-mod/m/art/top', '/u/multi-mod/m/art', 'top')),
@@ -63,7 +66,10 @@ SUBREDDIT_AUTH_PROMPTS = OrderedDict([
('me-1', ('/u/me', '/u/me', None)),
('me-top', ('/u/me/top', '/u/me', 'top')),
('me-top-all', ('/u/me/top-all', '/u/me', 'top-all')),
('user-saved', ('/u/saved', '/u/saved', None)),
('user-saved', ('/u/me/saved', '/u/me/saved', None)),
('user-upvoted', ('/u/me/upvoted', '/u/me/upvoted', None)),
('user-downvoted', ('/u/me/downvoted', '/u/me/downvoted', None)),
('user-hidden', ('/u/me/hidden', '/u/me/hidden', None)),
('me-multi', ('/u/me/m/redditpets/top-all', '/u/{username}/m/redditpets', 'top-all')),
])
@@ -484,7 +490,6 @@ def test_content_subreddit_me(reddit, oauth, refresh_token, terminal):
exceptions.NoSubmissionsError)
assert terminal.loader.exception.name == '/u/me'
def test_content_subreddit_nsfw_filter(reddit, oauth, refresh_token, terminal):
# NSFW subreddits should load if not logged in
@@ -553,14 +558,14 @@ def test_content_subreddit_saved(reddit, oauth, refresh_token, terminal):
# Not logged in
with terminal.loader():
SubredditContent.from_name(reddit, '/u/saved', terminal.loader)
SubredditContent.from_name(reddit, '/u/me/saved', terminal.loader)
assert isinstance(terminal.loader.exception, exceptions.AccountError)
# Logged in
oauth.config.refresh_token = refresh_token
oauth.authorize()
with terminal.loader():
SubredditContent.from_name(reddit, '/u/saved', terminal.loader)
SubredditContent.from_name(reddit, '/u/me/saved', terminal.loader)
def test_content_subscription_empty(reddit, terminal):

View File

@@ -422,17 +422,26 @@ def test_subreddit_open_multireddits(subreddit_page, refresh_token):
assert loop.called
def test_subreddit_saved(subreddit_page, refresh_token):
def test_subreddit_private_user_pages(subreddit_page, refresh_token):
# Log in
subreddit_page.config.refresh_token = refresh_token
subreddit_page.oauth.authorize()
subreddit_page.refresh_content(name='/u/saved')
subreddit_page.refresh_content(name='/u/me/saved')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/me/hidden')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/me/upvoted')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/me/downvoted')
subreddit_page.draw()
def test_subreddit_user_overview(subreddit_page, refresh_token):
def test_subreddit_user_pages(subreddit_page, refresh_token):
# Log in
subreddit_page.config.refresh_token = refresh_token
@@ -441,9 +450,21 @@ def test_subreddit_user_overview(subreddit_page, refresh_token):
# Pick a user that has a lot of recent comments, so we can make sure that
# SavedComment objects have all of the properties necessary to be drawn
# on the submission page.
# Should default to the overview page
subreddit_page.refresh_content(name='/u/spez')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/spez/overview')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/spez/submitted')
subreddit_page.draw()
subreddit_page.refresh_content(name='/u/spez/comments')
subreddit_page.draw()
def test_subreddit_draw_header(subreddit_page, refresh_token, terminal):
@@ -465,23 +486,36 @@ def test_subreddit_draw_header(subreddit_page, refresh_token, terminal):
# /u/me alias should be renamed in the header
subreddit_page.refresh_content(name='/u/me')
subreddit_page.draw()
text = 'My Submissions'.encode('utf-8')
text = 'My Overview'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
subreddit_page.refresh_content(name='/u/me/new')
subreddit_page.draw()
text = 'My Submissions'.encode('utf-8')
text = 'My Overview'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
# /u/saved alias should be renamed in the header
subreddit_page.refresh_content(name='/u/saved')
subreddit_page.refresh_content(name='/u/me/saved')
subreddit_page.draw()
text = 'My Saved Submissions'.encode('utf-8')
text = 'My Saved'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
subreddit_page.refresh_content(name='/u/saved/new')
# /u/upvoted alias should be renamed in the header
subreddit_page.refresh_content(name='/u/me/upvoted')
subreddit_page.draw()
text = 'My Saved Submissions'.encode('utf-8')
text = 'My Upvoted'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
# /u/downvoted alias should be renamed in the header
subreddit_page.refresh_content(name='/u/me/downvoted')
subreddit_page.draw()
text = 'My Downvoted'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
# /u/hidden alias should be renamed in the header
subreddit_page.refresh_content(name='/u/me/hidden')
subreddit_page.draw()
text = 'My Hidden'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
@@ -524,4 +558,4 @@ def test_subreddit_hide_submission(subreddit_page, refresh_token):
# Make sure that the status was actually updated on the server side
data['object'].refresh()
assert data['object'].hidden is False
assert data['object'].hidden is False