1- # pylint: disable=protected-access,redefined-outer-name
1+ # pylint: disable=protected-access,redefined-outer-name,abstract-method
22import json
3+ from dataclasses import dataclass
34from string import ascii_letters
45
56import boto3
@@ -26,6 +27,12 @@ def client():
2627 )
2728
2829
30+ @dataclass
31+ class TestModel (BaseResourceModel ):
32+ somekey : str
33+ someotherkey : str
34+
35+
2936def test_base_resource_model__deserialize ():
3037 with pytest .raises (NotImplementedError ):
3138 BaseResourceModel ()._deserialize ({})
@@ -52,16 +59,48 @@ def test_progress_event_failed_is_json_serializable(error_code, message):
5259
5360
5461@given (s .text (ascii_letters ), s .text (ascii_letters ))
55- def test_progress_event_serialize_to_response (message , bearer_token ):
62+ def test_progress_event_serialize_to_response_with_context (message , bearer_token ):
63+ event = ProgressEvent (
64+ status = OperationStatus .SUCCESS , message = message , callbackContext = {"a" : "b" }
65+ )
66+
67+ assert event ._serialize (to_response = True , bearer_token = bearer_token ) == {
68+ "operationStatus" : OperationStatus .SUCCESS .name , # pylint: disable=no-member
69+ "message" : message ,
70+ "bearerToken" : bearer_token ,
71+ }
72+
73+
74+ @given (s .text (ascii_letters ), s .text (ascii_letters ))
75+ def test_progress_event_serialize_to_response_with_model (message , bearer_token ):
76+ model = TestModel ("a" , "b" )
77+ event = ProgressEvent (
78+ status = OperationStatus .SUCCESS , message = message , resourceModel = model
79+ )
80+
81+ assert event ._serialize (to_response = True , bearer_token = bearer_token ) == {
82+ "operationStatus" : OperationStatus .SUCCESS .name , # pylint: disable=no-member
83+ "message" : message ,
84+ "bearerToken" : bearer_token ,
85+ "resourceModel" : {"somekey" : "a" , "someotherkey" : "b" },
86+ }
87+
88+
89+ @given (s .text (ascii_letters ), s .text (ascii_letters ))
90+ def test_progress_event_serialize_to_response_with_models (message , bearer_token ):
91+ models = [TestModel ("a" , "b" ), TestModel ("c" , "d" )]
5692 event = ProgressEvent (
57- status = OperationStatus .SUCCESS , message = message , callbackDelaySeconds = 1
93+ status = OperationStatus .SUCCESS , message = message , resourceModels = models
5894 )
5995
6096 assert event ._serialize (to_response = True , bearer_token = bearer_token ) == {
61- "operationStatus" : OperationStatus .SUCCESS .value ,
97+ "operationStatus" : OperationStatus .SUCCESS .name , # pylint: disable=no-member
6298 "message" : message ,
6399 "bearerToken" : bearer_token ,
64- "callbackDelaySeconds" : 1 ,
100+ "resourceModels" : [
101+ {"somekey" : "a" , "someotherkey" : "b" },
102+ {"somekey" : "c" , "someotherkey" : "d" },
103+ ],
65104 }
66105
67106
0 commit comments