def test_oauth_terminal_mobile_authorize(reddit, terminal, config): # Should direct to the mobile version if using a terminal browser reddit.config.API_PATHS['authorize'] = 'api/v1/authorize/' terminal._display = False oauth = OAuthHelper(reddit, terminal, config) assert '.compact' in oauth.reddit.config.API_PATHS['authorize']
def test_oauth_terminal_non_mobile_authorize(reddit, terminal, config): # Should direct to the desktop version if using a graphical browser reddit.config.API_PATHS['authorize'] = 'api/v1/authorize/' terminal._display = True oauth = OAuthHelper(reddit, terminal, config) assert '.compact' not in oauth.reddit.config.API_PATHS['authorize']
def main(): locale.setlocale(locale.LC_ALL, '') if len(sys.argv) > 1: theme = Theme.from_name(sys.argv[1]) else: theme = Theme() vcr = initialize_vcr() with vcr.use_cassette('demo_theme.yaml') as cassette, \ curses_session() as stdscr: config = Config() if vcr.record_mode == 'once': config.load_refresh_token() else: config.refresh_token = 'mock_refresh_token' reddit = praw.Reddit(user_agent='RTV Theme Demo', decode_html_entities=False, disable_update_check=True) reddit.config.api_request_delay = 0 config.history.add('https://api.reddit.com/comments/6llvsl/_/djutc3s') config.history.add('http://i.imgur.com/Z9iGKWv.gifv') config.history.add('https://www.reddit.com/r/Python/comments/6302cj/rpython_official_job_board/') term = Terminal(stdscr, config) term.set_theme() oauth = OAuthHelper(reddit, term, config) oauth.authorize() theme_list = ThemeList() while True: term = Terminal(stdscr, config) term.set_theme(theme) threads = draw_screen(stdscr, reddit, config, theme, oauth) try: ch = term.show_notification(theme.display_string) except KeyboardInterrupt: ch = Terminal.ESCAPE for thread, term in threads: term.pause_getch = False thread.join() if vcr.record_mode == 'once': break else: cassette.play_counts = Counter() theme_list.reload() if ch == curses.KEY_RIGHT: theme = theme_list.next(theme) elif ch == curses.KEY_LEFT: theme = theme_list.previous(theme) elif ch == Terminal.ESCAPE: break else: # Force the theme to reload theme = theme_list.next(theme) theme = theme_list.previous(theme)
def oauth(reddit, terminal, config): return OAuthHelper(reddit, terminal, config)