review exception raise

In some cases for better readability of logs, exceptions are now raised
without parent exception stacktrace. Also updated docs and contributing
guidelines
This commit is contained in:
2023-08-20 17:03:46 +03:00
parent c26a13c562
commit d3f6ca24c8
32 changed files with 92 additions and 48 deletions

View File

@ -52,6 +52,9 @@ def exception_handler(logger: logging.Logger) -> MiddlewareType:
Returns:
MiddlewareType: built middleware
Raises:
HTTPNoContent: OPTIONS method response
"""
@middleware
async def handle(request: Request, handler: HandlerType) -> StreamResponse:

View File

@ -121,7 +121,7 @@ class BaseView(View, CorsViewMixin):
if not value:
raise KeyError(key)
except Exception:
raise KeyError(f"Key {key} is missing or empty")
raise KeyError(f"Key {key} is missing or empty") from None
return value
async def data_as_json(self, list_keys: list[str]) -> dict[str, Any]:

View File

@ -74,7 +74,7 @@ class PGPView(BaseView):
try:
key = self.service.repository.sign.key_download(server, key)
except Exception:
raise HTTPNotFound()
raise HTTPNotFound
return json_response({"key": key})

View File

@ -113,9 +113,10 @@ class UploadView(BaseView):
Raises:
HTTPBadRequest: if bad data is supplied
HTTPCreated: on success response
HTTPNotFound: method is disabled by configuration
"""
if not self.configuration.getboolean("web", "enable_archive_upload", fallback=False):
raise HTTPNotFound()
raise HTTPNotFound
try:
reader = await self.request.multipart()
@ -141,4 +142,4 @@ class UploadView(BaseView):
target_location = current_location.parent / filename
current_location.rename(target_location)
raise HTTPCreated()
raise HTTPCreated

View File

@ -65,7 +65,7 @@ class LogsView(BaseView):
package_base = self.request.match_info["package"]
self.service.logs_remove(package_base, None)
raise HTTPNoContent()
raise HTTPNoContent
@aiohttp_apispec.docs(
tags=["Packages"],
@ -97,7 +97,7 @@ class LogsView(BaseView):
try:
_, status = self.service.package_get(package_base)
except UnknownPackageError:
raise HTTPNotFound()
raise HTTPNotFound
logs = self.service.logs_get(package_base)
response = {
@ -143,4 +143,4 @@ class LogsView(BaseView):
self.service.logs_update(LogRecordId(package_base, version), created, record)
raise HTTPNoContent()
raise HTTPNoContent

View File

@ -66,7 +66,7 @@ class PackageView(BaseView):
package_base = self.request.match_info["package"]
self.service.package_remove(package_base)
raise HTTPNoContent()
raise HTTPNoContent
@aiohttp_apispec.docs(
tags=["Packages"],
@ -98,7 +98,7 @@ class PackageView(BaseView):
try:
package, status = self.service.package_get(package_base)
except UnknownPackageError:
raise HTTPNotFound()
raise HTTPNotFound
response = [
{
@ -146,4 +146,4 @@ class PackageView(BaseView):
except UnknownPackageError:
raise HTTPBadRequest(reason=f"Package {package_base} is unknown, but no package body set")
raise HTTPNoContent()
raise HTTPNoContent

View File

@ -88,4 +88,4 @@ class PackagesView(BaseView):
"""
self.service.load()
raise HTTPNoContent()
raise HTTPNoContent

View File

@ -104,4 +104,4 @@ class StatusView(BaseView):
self.service.status_update(status)
raise HTTPNoContent()
raise HTTPNoContent

View File

@ -84,7 +84,7 @@ class LoginView(BaseView):
await remember(self.request, response, identity)
raise response
raise HTTPUnauthorized()
raise HTTPUnauthorized
@aiohttp_apispec.docs(
tags=["Login"],
@ -114,4 +114,4 @@ class LoginView(BaseView):
await remember(self.request, response, identity)
raise response
raise HTTPUnauthorized()
raise HTTPUnauthorized

View File

@ -57,6 +57,7 @@ class LogoutView(BaseView):
Raises:
HTTPFound: on success response
HTTPUnauthorized: no authorization cookie available
"""
try:
await check_authorized(self.request)