From e6157c5e80b2bbfc98d5bfd7f34150edcd0e148a Mon Sep 17 00:00:00 2001 From: woorst Date: Sat, 15 Sep 2018 18:06:31 -0400 Subject: [PATCH] add test for user pages --- tests/test_content.py | 13 +++++++--- tests/test_subreddit.py | 54 +++++++++++++++++++++++++++++++++-------- 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/tests/test_content.py b/tests/test_content.py index fc496a1..d49a7a4 100644 --- a/tests/test_content.py +++ b/tests/test_content.py @@ -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): diff --git a/tests/test_subreddit.py b/tests/test_subreddit.py index 7ee51b5..9babc70 100644 --- a/tests/test_subreddit.py +++ b/tests/test_subreddit.py @@ -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 \ No newline at end of file + assert data['object'].hidden is False