Skip to content

Commit 7618be4

Browse files
author
Valeriya Popova
committed
add server codes to errors
1 parent fe07ae5 commit 7618be4

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

tests/test_errors.py

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import ydb
2+
import pytest
3+
4+
from os import path
5+
6+
7+
def test_scheme_error(driver_sync, database):
8+
session = driver_sync.table_client.session().create()
9+
with pytest.raises(ydb.issues.SchemeError) as exc:
10+
session.drop_table(path.join(database, "foobartable"))
11+
12+
server_code = ydb.issues.StatusCode.SCHEME_ERROR
13+
14+
assert type(exc.value) == ydb.issues.SchemeError
15+
assert exc.value.status == server_code
16+
assert f"server_code: {server_code}" in str(exc.value)
17+
assert "Path does not exist" in str(exc.value)

ydb/issues.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,18 @@ class SessionPoolEmpty(Error, queue.Empty):
159159
def _format_issues(issues):
160160
if not issues:
161161
return ""
162+
162163
return " ,".join(
163-
[text_format.MessageToString(issue, False, True) for issue in issues]
164+
text_format.MessageToString(issue, as_utf8=False, as_one_line=True)
165+
for issue in issues
164166
)
165167

166168

169+
def _format_response(response):
170+
fmt_issues = _format_issues(response.issues)
171+
return f"{fmt_issues} (server_code: {response.status})"
172+
173+
167174
_success_status_codes = {StatusCode.STATUS_CODE_UNSPECIFIED, StatusCode.SUCCESS}
168175
_server_side_error_map = {
169176
StatusCode.BAD_REQUEST: BadRequest,
@@ -190,4 +197,4 @@ def _format_issues(issues):
190197
def _process_response(response_proto):
191198
if response_proto.status not in _success_status_codes:
192199
exc_obj = _server_side_error_map.get(response_proto.status)
193-
raise exc_obj(_format_issues(response_proto.issues), response_proto.issues)
200+
raise exc_obj(_format_response(response_proto), response_proto.issues)

0 commit comments

Comments
 (0)