From b888a7b572df5073bfa4ce987706a14b3258f657 Mon Sep 17 00:00:00 2001 From: Rodrigo Reis Date: Thu, 15 Dec 2016 18:28:33 +0100 Subject: [PATCH 1/3] #23 Fixed stderr output --- zign/api.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/zign/api.py b/zign/api.py index 268136a..8716479 100644 --- a/zign/api.py +++ b/zign/api.py @@ -1,4 +1,5 @@ import click +import contextlib from clickclick import error, info, UrlType import keyring import os @@ -7,6 +8,7 @@ import tokens import requests import socket +import sys import webbrowser import yaml @@ -319,8 +321,21 @@ def get_token_implicit_flow(name=None, authorize_url=None, token_url=None, clien browser_url = urlunsplit((parsed_authorize_url.scheme, parsed_authorize_url.netloc, parsed_authorize_url.path, param_string, '')) - webbrowser.open(browser_url, new=1, autoraise=True) + # Redirect stdout and stderr. In Linux, a message is outputted to stdout when opening the browser + # (and then a message to stderr because it can't write). + saved_stdout = os.dup(1) + saved_stderr = os.dup(2) + os.close(1) + os.close(2) + os.open(os.devnull, os.O_RDWR) + try: + webbrowser.get().open(browser_url, new=1, autoraise=True) + finally: + os.dup2(saved_stdout, 1) + os.dup2(saved_stderr, 2) + info('Your browser has been opened to visit:\n\n\t{}\n'.format(browser_url)) + else: raise AuthenticationFailed('Failed to launch local server') From 96e4919fb7567119cb704389ca3e3afbbd810c38 Mon Sep 17 00:00:00 2001 From: Rodrigo Reis Date: Thu, 15 Dec 2016 18:30:07 +0100 Subject: [PATCH 2/3] #23 Removed unnecessary lib --- zign/api.py | 1 - 1 file changed, 1 deletion(-) diff --git a/zign/api.py b/zign/api.py index 8716479..4b10d24 100644 --- a/zign/api.py +++ b/zign/api.py @@ -1,5 +1,4 @@ import click -import contextlib from clickclick import error, info, UrlType import keyring import os From 1f05e9183ffa1cb9f3afd6f3d9bb87aa0f975920 Mon Sep 17 00:00:00 2001 From: Rodrigo Reis Date: Thu, 15 Dec 2016 18:30:41 +0100 Subject: [PATCH 3/3] #23 Fixed flake8 --- zign/api.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zign/api.py b/zign/api.py index 4b10d24..6a1ced4 100644 --- a/zign/api.py +++ b/zign/api.py @@ -7,7 +7,6 @@ import tokens import requests import socket -import sys import webbrowser import yaml @@ -332,7 +331,7 @@ def get_token_implicit_flow(name=None, authorize_url=None, token_url=None, clien finally: os.dup2(saved_stdout, 1) os.dup2(saved_stderr, 2) - + info('Your browser has been opened to visit:\n\n\t{}\n'.format(browser_url)) else: