mirror of https://github.com/zulip/zulip.git
python: Catch specific exceptions from subprocess.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
aabef3d9be
commit
17ac17286c
|
@ -2,6 +2,7 @@ import base64
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
|
import subprocess
|
||||||
import tempfile
|
import tempfile
|
||||||
import urllib
|
import urllib
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
@ -970,7 +971,7 @@ Output:
|
||||||
'''
|
'''
|
||||||
with \
|
with \
|
||||||
self.settings(ERROR_BOT=None), \
|
self.settings(ERROR_BOT=None), \
|
||||||
mock.patch('zerver.lib.markdown.timeout', side_effect=KeyError('foo')), \
|
mock.patch('zerver.lib.markdown.timeout', side_effect=subprocess.CalledProcessError(1, [])), \
|
||||||
mock.patch('zerver.lib.markdown.markdown_logger'):
|
mock.patch('zerver.lib.markdown.markdown_logger'):
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ def try_git_describe() -> Optional[str]:
|
||||||
stderr=subprocess.PIPE,
|
stderr=subprocess.PIPE,
|
||||||
cwd=os.path.join(os.path.dirname(__file__), '..'),
|
cwd=os.path.join(os.path.dirname(__file__), '..'),
|
||||||
).strip().decode('utf-8')
|
).strip().decode('utf-8')
|
||||||
except Exception: # nocoverage
|
except (FileNotFoundError, subprocess.CalledProcessError): # nocoverage
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def add_request_metadata(report: Dict[str, Any], request: HttpRequest) -> None:
|
def add_request_metadata(report: Dict[str, Any], request: HttpRequest) -> None:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import subprocess
|
||||||
from typing import Any, Callable, Dict, Iterable, List, Tuple
|
from typing import Any, Callable, Dict, Iterable, List, Tuple
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
|
@ -148,7 +149,7 @@ class TestReport(ZulipTestCase):
|
||||||
|
|
||||||
subprocess_mock = mock.patch(
|
subprocess_mock = mock.patch(
|
||||||
'zerver.views.report.subprocess.check_output',
|
'zerver.views.report.subprocess.check_output',
|
||||||
side_effect=KeyError('foo'),
|
side_effect=subprocess.CalledProcessError(1, []),
|
||||||
)
|
)
|
||||||
with mock_queue_publish('zerver.views.report.queue_json_publish') as m, subprocess_mock:
|
with mock_queue_publish('zerver.views.report.queue_json_publish') as m, subprocess_mock:
|
||||||
result = self.client_post("/json/report/error", params)
|
result = self.client_post("/json/report/error", params)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import subprocess
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
@ -51,7 +52,7 @@ class ZephyrTest(ZulipTestCase):
|
||||||
|
|
||||||
with \
|
with \
|
||||||
ccache_mock(return_value=b'1234'), \
|
ccache_mock(return_value=b'1234'), \
|
||||||
ssh_mock(side_effect=KeyError('foo')), \
|
ssh_mock(side_effect=subprocess.CalledProcessError(1, [])), \
|
||||||
logging_mock() as log:
|
logging_mock() as log:
|
||||||
result = post("zephyr", cred=cred)
|
result = post("zephyr", cred=cred)
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ def report_error(request: HttpRequest, user_profile: UserProfile, message: str=R
|
||||||
["git", "show", "-s", "--oneline"],
|
["git", "show", "-s", "--oneline"],
|
||||||
universal_newlines=True,
|
universal_newlines=True,
|
||||||
)
|
)
|
||||||
except Exception:
|
except (FileNotFoundError, subprocess.CalledProcessError):
|
||||||
version = None
|
version = None
|
||||||
|
|
||||||
# Get the IP address of the request
|
# Get the IP address of the request
|
||||||
|
|
|
@ -66,7 +66,7 @@ def webathena_kerberos_login(request: HttpRequest, user_profile: UserProfile,
|
||||||
]
|
]
|
||||||
subprocess.check_call(["ssh", settings.PERSONAL_ZMIRROR_SERVER, "--",
|
subprocess.check_call(["ssh", settings.PERSONAL_ZMIRROR_SERVER, "--",
|
||||||
" ".join(map(shlex.quote, command))])
|
" ".join(map(shlex.quote, command))])
|
||||||
except Exception:
|
except subprocess.CalledProcessError:
|
||||||
logging.exception("Error updating the user's ccache", stack_info=True)
|
logging.exception("Error updating the user's ccache", stack_info=True)
|
||||||
return json_error(_("We were unable to setup mirroring for you"))
|
return json_error(_("We were unable to setup mirroring for you"))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue