@@ -153,9 +153,37 @@ def test_continue_request_400_if_method_name_is_empty(self):
153
153
handler .continue_request (data , request )
154
154
logdata = supervisor .options .logger .data
155
155
self .assertEqual (len (logdata ), 1 )
156
- self .assertEqual (logdata [0 ],
157
- 'XML-RPC request received with no method name' )
158
- self .assertEqual (len (request .producers ), 0 )
156
+ self .assertTrue (logdata [0 ].startswith ('XML-RPC request data' ))
157
+ self .assertTrue (repr (data ) in logdata [0 ])
158
+ self .assertTrue (logdata [0 ].endswith ('is invalid: no method name' ))
159
+ self .assertEqual (request ._error , 400 )
160
+
161
+ def test_continue_request_400_if_loads_raises_not_xml (self ):
162
+ supervisor = DummySupervisor ()
163
+ subinterfaces = [('supervisor' , DummySupervisorRPCNamespace ())]
164
+ handler = self ._makeOne (supervisor , subinterfaces )
165
+ data = 'this is not an xml-rpc request body'
166
+ request = DummyRequest ('/what/ever' , None , None , None )
167
+ handler .continue_request (data , request )
168
+ logdata = supervisor .options .logger .data
169
+ self .assertEqual (len (logdata ), 1 )
170
+ self .assertTrue (logdata [0 ].startswith ('XML-RPC request data' ))
171
+ self .assertTrue (repr (data ) in logdata [0 ])
172
+ self .assertTrue (logdata [0 ].endswith ('is invalid: unmarshallable' ))
173
+ self .assertEqual (request ._error , 400 )
174
+
175
+ def test_continue_request_400_if_loads_raises_weird_xml (self ):
176
+ supervisor = DummySupervisor ()
177
+ subinterfaces = [('supervisor' , DummySupervisorRPCNamespace ())]
178
+ handler = self ._makeOne (supervisor , subinterfaces )
179
+ data = '<methodName></methodName><junk></junk>'
180
+ request = DummyRequest ('/what/ever' , None , None , None )
181
+ handler .continue_request (data , request )
182
+ logdata = supervisor .options .logger .data
183
+ self .assertEqual (len (logdata ), 1 )
184
+ self .assertTrue (logdata [0 ].startswith ('XML-RPC request data' ))
185
+ self .assertTrue (repr (data ) in logdata [0 ])
186
+ self .assertTrue (logdata [0 ].endswith ('is invalid: unmarshallable' ))
159
187
self .assertEqual (request ._error , 400 )
160
188
161
189
def test_continue_request_500_if_rpcinterface_method_call_raises (self ):
@@ -173,6 +201,7 @@ def test_continue_request_500_if_rpcinterface_method_call_raises(self):
173
201
self .assertTrue (repr (data ) in logdata [1 ])
174
202
self .assertTrue ("Traceback" in logdata [1 ])
175
203
self .assertTrue ("ValueError: error" in logdata [1 ])
204
+ self .assertEqual (request ._error , 500 )
176
205
177
206
def test_continue_request_500_if_xmlrpc_dumps_raises (self ):
178
207
supervisor = DummySupervisor ()
@@ -192,7 +221,7 @@ def test_continue_request_500_if_xmlrpc_dumps_raises(self):
192
221
self .assertTrue (repr (data ) in logdata [2 ])
193
222
self .assertTrue ("Traceback" in logdata [2 ])
194
223
self .assertTrue ("TypeError: cannot marshal" in logdata [2 ])
195
-
224
+ self . assertEqual ( request . _error , 500 )
196
225
197
226
def test_continue_request_value_is_function (self ):
198
227
class DummyRPCNamespace (object ):
0 commit comments