@@ -56,19 +56,31 @@ def test_servicebus_data(self):
56
56
57
57
def test_servicebus_properties (self ):
58
58
# SystemProperties in metadata should propagate to class properties
59
- servicebus_msg = azf_sb .ServiceBusMessageInConverter .decode (
60
- data = self . _generate_servicebus_data ( ),
59
+ msg = azf_sb .ServiceBusMessageInConverter .decode (
60
+ data = meta . Datum ( b'body_bytes' , 'bytes' ),
61
61
trigger_metadata = self ._generate_servicebus_metadata ())
62
62
63
- self .assertEqual (servicebus_msg .content_type , 'application/json' )
64
- self .assertEqual (servicebus_msg .label , 'Microsoft.Azure.ServiceBus' )
65
- self .assertEqual (servicebus_msg .message_id ,
66
- '87c66eaf88e84119b66a26278a7b4149' )
67
- self .assertEqual (servicebus_msg .enqueued_time_utc ,
68
- self .MOCKED_ENQUEUE_TIME )
69
- self .assertEqual (servicebus_msg .expires_at_utc ,
63
+ self .assertEqual (msg .get_body (), b'body_bytes' )
64
+ self .assertEqual (msg .content_type , 'application/json' )
65
+ self .assertIsNone (msg .correlation_id )
66
+ self .assertEqual (msg .enqueued_time_utc , self .MOCKED_ENQUEUE_TIME )
67
+ self .assertEqual (msg .expires_at_utc ,
70
68
datetime (2020 , 7 , 2 , 5 , 39 , 12 , 170000 ,
71
69
tzinfo = timezone .utc ))
70
+ self .assertIsNone (msg .expiration_time )
71
+ self .assertEqual (msg .label , 'Microsoft.Azure.ServiceBus' )
72
+ self .assertEqual (msg .message_id , '87c66eaf88e84119b66a26278a7b4149' )
73
+ self .assertEqual (msg .partition_key , 'sample_part' )
74
+ self .assertIsNone (msg .reply_to )
75
+ self .assertIsNone (msg .reply_to_session_id )
76
+ self .assertIsNone (msg .scheduled_enqueue_time )
77
+ self .assertIsNone (msg .session_id )
78
+ self .assertIsNone (msg .time_to_live )
79
+ self .assertIsNone (msg .to )
80
+ self .assertDictEqual (msg .user_properties , {
81
+ '$AzureWebJobsParentId' : '6ceef68b-0794-45dd-bb2e-630748515552' ,
82
+ 'x-opt-enqueue-sequence-number' : 0
83
+ })
72
84
73
85
def test_servicebus_metadata (self ):
74
86
# Trigger metadata should contains all the essential information
@@ -79,7 +91,7 @@ def test_servicebus_metadata(self):
79
91
80
92
# Datetime should be in iso8601 string instead of datetime object
81
93
metadata_dict = servicebus_msg .metadata
82
- self .assertDictEqual (metadata_dict , {
94
+ self .assertGreaterEqual (metadata_dict . items () , {
83
95
'DeliveryCount' : 1 ,
84
96
'LockToken' : '87931fd2-39f4-415a-9fdc-adfdcbed3148' ,
85
97
'ExpiresAtUtc' : '2020-07-02T05:39:12.17Z' ,
@@ -93,7 +105,7 @@ def test_servicebus_metadata(self):
93
105
'UtcNow' : '2020-06-18T05:39:12.2860411Z' ,
94
106
'RandGuid' : 'bb38deae-cc75-49f2-89f5-96ec6eb857db'
95
107
}
96
- })
108
+ }. items () )
97
109
98
110
def test_servicebus_should_not_override_metadata (self ):
99
111
# SystemProperties in metadata should propagate to class properties
@@ -135,14 +147,53 @@ def _generate_servicebus_metadata(self):
135
147
'application/json' , 'string'
136
148
)
137
149
mocked_metadata ['SequenceNumber' ] = meta .Datum (3 , 'int' )
150
+ mocked_metadata ['PartitionKey' ] = meta .Datum ('sample_part' , 'string' )
138
151
mocked_metadata ['Label' ] = meta .Datum (
139
152
'Microsoft.Azure.ServiceBus' , 'string'
140
153
)
141
- mocked_metadata ['sys' ] = meta .Datum (type = 'json' , value = '''
142
- {
143
- "MethodName": "ServiceBusSMany",
144
- "UtcNow": "2020-06-18T05:39:12.2860411Z",
145
- "RandGuid": "bb38deae-cc75-49f2-89f5-96ec6eb857db"
154
+ mocked_metadata ['MessageReceiver' ] = meta .Datum (type = 'json' , value = '''
155
+ {
156
+ "RegisteredPlugins": [],
157
+ "ReceiveMode": 0,
158
+ "PrefetchCount": 0,
159
+ "LastPeekedSequenceNumber": 0,
160
+ "Path": "testqueue",
161
+ "OperationTimeout": "00:01:00",
162
+ "ServiceBusConnection": {
163
+ "Endpoint": "sb://python-worker-36-sbns.servicebus.win.net",
164
+ "OperationTimeout": "00:01:00",
165
+ "RetryPolicy": {
166
+ "MinimalBackoff": "00:00:00",
167
+ "MaximumBackoff": "00:00:30",
168
+ "DeltaBackoff": "00:00:03",
169
+ "MaxRetryCount": 5,
170
+ "IsServerBusy": false,
171
+ "ServerBusyExceptionMessage": null
172
+ },
173
+ "TransportType": 0,
174
+ "TokenProvider": {}
175
+ },
176
+ "IsClosedOrClosing": false,
177
+ "ClientId": "MessageReceiver1testqueue",
178
+ "RetryPolicy": {
179
+ "MinimalBackoff": "00:00:00",
180
+ "MaximumBackoff": "00:00:30",
181
+ "DeltaBackoff": "00:00:03",
182
+ "MaxRetryCount": 5,
183
+ "IsServerBusy": false,
184
+ "ServerBusyExceptionMessage": null
146
185
}
147
- ''' )
186
+ }''' )
187
+ mocked_metadata ['UserProperties' ] = meta .Datum (type = 'json' , value = '''
188
+ {
189
+ "$AzureWebJobsParentId": "6ceef68b-0794-45dd-bb2e-630748515552",
190
+ "x-opt-enqueue-sequence-number": 0
191
+ }''' )
192
+ mocked_metadata ['sys' ] = meta .Datum (type = 'json' , value = '''
193
+ {
194
+ "MethodName": "ServiceBusSMany",
195
+ "UtcNow": "2020-06-18T05:39:12.2860411Z",
196
+ "RandGuid": "bb38deae-cc75-49f2-89f5-96ec6eb857db"
197
+ }
198
+ ''' )
148
199
return mocked_metadata
0 commit comments