@@ -102,3 +102,45 @@ def test_servicebus_basic_sdk(self):
102
102
raise
103
103
else :
104
104
break
105
+
106
+
107
+ class TestServiceBusBatchFunctionsStein (testutils .WebHostTestCase ):
108
+
109
+ @classmethod
110
+ def get_script_dir (cls ):
111
+ return testutils .EMULATOR_TESTS_FOLDER / 'servicebus_batch_functions' / \
112
+ 'servicebus_batch_functions_stein'
113
+
114
+ @testutils .retryable_test (3 , 5 )
115
+ def test_servicebus_multiple (self ):
116
+ NUM_EVENTS = 3
117
+ all_row_keys_seen = dict ([(i , True ) for i in range (NUM_EVENTS )])
118
+ partition_key = str (round (time .time ()))
119
+
120
+ docs = []
121
+ for i in range (NUM_EVENTS ):
122
+ doc = {'PartitionKey' : partition_key , 'RowKey' : i }
123
+ docs .append (doc )
124
+
125
+ r = self .webhost .request ('POST' , 'servicebus_output_batch' ,
126
+ data = json .dumps (docs ))
127
+ self .assertEqual (r .status_code , 200 )
128
+
129
+ row_keys = [i for i in range (NUM_EVENTS )]
130
+ seen = [False ] * NUM_EVENTS
131
+ row_keys_seen = dict (zip (row_keys , seen ))
132
+
133
+ # Allow trigger to fire.
134
+ time .sleep (5 )
135
+
136
+ r = self .webhost .request (
137
+ 'GET' ,
138
+ 'get_servicebus_batch_triggered' )
139
+ self .assertEqual (r .status_code , 200 )
140
+ entries = r .json ()
141
+ for entry in entries :
142
+ self .assertEqual (entry ['PartitionKey' ], partition_key )
143
+ row_key = entry ['RowKey' ]
144
+ row_keys_seen [row_key ] = True
145
+
146
+ self .assertDictEqual (all_row_keys_seen , row_keys_seen )
0 commit comments