def subreddit_page(reddit, terminal, config, oauth): subreddit = '/r/python' with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, subreddit) assert not terminal.loader.exception page.draw() return page
def test_subreddit_page_construct(reddit, terminal, config, oauth): window = terminal.stdscr.subwin with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, '/r/python') assert terminal.loader.exception is None page.draw() # Title title = '/r/python'.encode('utf-8') window.addstr.assert_any_call(0, 0, title) # Banner menu = ('[1]hot ' '[2]top ' '[3]rising ' '[4]new ' '[5]controversial').encode('utf-8') window.addstr.assert_any_call(0, 0, menu) # Submission text = page.content.get(0)['split_title'][0].encode('utf-8') window.subwin.addstr.assert_any_call(0, 1, text, 2097152) # Cursor should have been drawn assert window.subwin.chgat.called # Reload with a smaller terminal window terminal.stdscr.ncols = 20 terminal.stdscr.nlines = 10 with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, '/r/python') assert terminal.loader.exception is None page.draw()
def main(): parser = argparse.ArgumentParser( prog='rtv', description=description, epilog=epilog, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('-s', dest='subreddit', default='front', help='subreddit name') parser.add_argument('-l', dest='link', help='full link to a submission') group = parser.add_argument_group('authentication (optional)') group.add_argument('-u', dest='username', help='reddit username') group.add_argument('-p', dest='password', help='reddit password') args = parser.parse_args() try: reddit = praw.Reddit(user_agent='reddit terminal viewer v0.0') reddit.config.decode_html_entities = True if args.username: if args.password: reddit.login(args.username, args.password) else: password = getpass() reddit.login(args.username, password) with curses_session() as stdscr: if args.link: page = SubmissionPage(stdscr, reddit, url=args.link) page.loop() page = SubredditPage(stdscr, reddit, args.subreddit) page.loop() except KeyboardInterrupt: return except ConnectionError: print('Timeout: Could not connect to website') except HTTPError: print('HTTP Error: 404 Not Found') except SubmissionURLError as e: print('Could not reach submission URL: {}'.format(e.url)) except SubredditNameError as e: print('Could not reach subreddit: {}'.format(e.name))
def test_subreddit_page_construct(reddit, terminal, config, oauth): window = terminal.stdscr.subwin with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, "/r/python") assert terminal.loader.exception is None page.draw() # Title title = "/r/python".encode("utf-8") window.addstr.assert_any_call(0, 0, title) # Banner menu = ("[1]hot " "[2]top " "[3]rising " "[4]new " "[5]controversial").encode( "utf-8" ) window.addstr.assert_any_call(0, 0, menu) # Submission text = page.content.get(0)["split_title"][0].encode("utf-8") window.subwin.addstr.assert_any_call(0, 1, text, 2097152) # Cursor should have been drawn assert window.subwin.chgat.called # Reload with a smaller terminal window terminal.stdscr.ncols = 20 terminal.stdscr.nlines = 10 with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, "/r/python") assert terminal.loader.exception is None page.draw()
def test_subreddit_page_construct(reddit, terminal, config, oauth): window = terminal.stdscr.subwin with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, '/r/python') assert terminal.loader.exception is None page.draw() # Title title = '/r/python'.encode('utf-8') window.addstr.assert_any_call(0, 0, title) # Submission text = page.content.get(0)['split_title'][0].encode('utf-8') window.subwin.addstr.assert_any_call(0, 1, text, 2097152) # Cursor should have been drawn assert window.subwin.chgat.called # Reload with a smaller terminal window terminal.stdscr.ncols = 20 terminal.stdscr.nlines = 10 with terminal.loader(): page = SubredditPage(reddit, terminal, config, oauth, '/r/python') assert terminal.loader.exception is None page.draw()