Skip to content

Commit 461591a

Browse files
[core] move SerializationError and DeserializationError to exceptions (#24312)
* move exceptions to exceptions * update changelog * fix changelog * Update CHANGELOG.md Co-authored-by: Xiang Yan <xiangsjtu@gmail.com>
1 parent c233f74 commit 461591a

5 files changed

Lines changed: 37 additions & 35 deletions

File tree

sdk/core/azure-core/CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Release History
22

3-
## 1.24.0 (2022-05-05)
3+
## 1.24.0 (2022-05-06)
44

55
### Features Added
66

7-
- Add `SerializationError` and `DeserializationError` in `azure.core.serialization` for errors raised during serialization / deserialization #24113
7+
- Add `SerializationError` and `DeserializationError` in `azure.core.exceptions` for errors raised during serialization / deserialization #24312
88

99
## 1.23.1 (2022-03-31)
1010

sdk/core/azure-core/azure/core/exceptions.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
"StreamConsumedError",
5454
"StreamClosedError",
5555
"ResponseNotReadError",
56+
"SerializationError",
57+
"DeserializationError",
5658
]
5759

5860

@@ -494,3 +496,11 @@ def __init__(self, response):
494496
)
495497
)
496498
super(ResponseNotReadError, self).__init__(message)
499+
500+
class SerializationError(ValueError):
501+
"""Raised if an error is encountered during serialization."""
502+
...
503+
504+
class DeserializationError(ValueError):
505+
"""Raised if an error is encountered during deserialization."""
506+
...

sdk/core/azure-core/azure/core/serialization.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from .utils._utils import _FixedOffset
1212

1313

14-
__all__ = ["NULL", "AzureJSONEncoder", "SerializationError", "DeserializationError"]
14+
__all__ = ["NULL", "AzureJSONEncoder"]
1515

1616

1717
class _Null(object):
@@ -123,11 +123,3 @@ def default(self, o): # pylint: disable=too-many-return-statements
123123
except AttributeError:
124124
pass
125125
return super(AzureJSONEncoder, self).default(o)
126-
127-
class SerializationError(ValueError):
128-
"""Raised if an error is encountered during serialization."""
129-
...
130-
131-
class DeserializationError(ValueError):
132-
"""Raised if an error is encountered during deserialization."""
133-
...

sdk/core/azure-core/tests/test_exceptions.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from mock import Mock
3434

3535
# module under test
36-
from azure.core.exceptions import HttpResponseError, ODataV4Error, ODataV4Format
36+
from azure.core.exceptions import HttpResponseError, ODataV4Error, ODataV4Format, SerializationError, DeserializationError
3737
from azure.core.pipeline.transport import RequestsTransportResponse
3838
from azure.core.pipeline.transport._base import _HttpResponseBase as PipelineTransportHttpResponseBase
3939
from azure.core.rest._http_response_impl import _HttpResponseBaseImpl as RestHttpResponseBase
@@ -320,3 +320,25 @@ def test_datav4_error(self, client, http_request):
320320
with pytest.raises(HttpResponseError) as ex:
321321
response.raise_for_status()
322322
assert "Content: {\"" not in str(ex.value)
323+
324+
def test_serialization_error():
325+
message = "Oopsy bad input passed for serialization"
326+
error = SerializationError(message)
327+
with pytest.raises(SerializationError) as ex:
328+
raise error
329+
assert str(ex.value) == message
330+
331+
with pytest.raises(ValueError) as ex:
332+
raise error
333+
assert str(ex.value) == message
334+
335+
def test_deserialization_error():
336+
message = "Oopsy bad input passed for serialization"
337+
error = DeserializationError(message)
338+
with pytest.raises(DeserializationError) as ex:
339+
raise error
340+
assert str(ex.value) == message
341+
342+
with pytest.raises(ValueError) as ex:
343+
raise error
344+
assert str(ex.value) == message

sdk/core/azure-core/tests/test_serialization.py

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import json
99
import sys
1010

11-
from azure.core.serialization import AzureJSONEncoder, NULL, SerializationError, DeserializationError
11+
from azure.core.serialization import AzureJSONEncoder, NULL
1212
import pytest
1313

1414

@@ -442,25 +442,3 @@ def __init__(self):
442442
]
443443
}
444444
assert json.loads(json_dumps_with_encoder(expected.to_dict())) == expected_dict
445-
446-
def test_serialization_error():
447-
message = "Oopsy bad input passed for serialization"
448-
error = SerializationError(message)
449-
with pytest.raises(SerializationError) as ex:
450-
raise error
451-
assert str(ex.value) == message
452-
453-
with pytest.raises(ValueError) as ex:
454-
raise error
455-
assert str(ex.value) == message
456-
457-
def test_deserialization_error():
458-
message = "Oopsy bad input passed for serialization"
459-
error = DeserializationError(message)
460-
with pytest.raises(DeserializationError) as ex:
461-
raise error
462-
assert str(ex.value) == message
463-
464-
with pytest.raises(ValueError) as ex:
465-
raise error
466-
assert str(ex.value) == message

0 commit comments

Comments
 (0)