@@ -179,6 +179,184 @@ def test_track_tracked_false(self):
179179 client .disable_tracking ()
180180 self .assertEqual (client .track ({}), None )
181181
182+ @responses .activate
183+ def test_filter_tracked_true (self ):
184+ response_text = {'action' : Verdict .ALLOW .value , 'user_id' : '1234' }
185+ responses .add (
186+ responses .POST ,
187+ 'https://api.castle.io/v1/filter' ,
188+ json = response_text ,
189+ status = 200
190+ )
191+ client = Client .from_request (request (), {})
192+ options = {
193+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
194+ 'event' : '$login' ,
195+ 'status' : '$succeeded' ,
196+ 'user' : {'id' : '1234' }
197+ }
198+ response_text .update (failover = False , failover_reason = None )
199+ self .assertEqual (client .filter (options ), response_text )
200+
201+ @responses .activate
202+ def test_filter_tracked_true_status_500 (self ):
203+ response_text = {
204+ 'action' : Verdict .ALLOW .value ,
205+ 'user_id' : '1234' ,
206+ 'failover' : True ,
207+ 'failover_reason' : 'InternalServerError'
208+ }
209+ responses .add (
210+ responses .POST ,
211+ 'https://api.castle.io/v1/filter' ,
212+ json = 'filter' ,
213+ status = 500
214+ )
215+ client = Client .from_request (request (), {})
216+ options = {
217+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
218+ 'event' : '$login' ,
219+ 'status' : '$succeeded' ,
220+ 'user' : {'id' : '1234' }
221+ }
222+ self .assertEqual (client .filter (options ), response_text )
223+
224+ def test_filter_tracked_false (self ):
225+ response_text = {
226+ 'action' : Verdict .ALLOW .value ,
227+ 'user_id' : '1234' ,
228+ 'failover' : True ,
229+ 'failover_reason' : 'Castle set to do not track.'
230+ }
231+ client = Client .from_request (request (), {})
232+ client .disable_tracking ()
233+ options = {
234+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
235+ 'event' : '$login' ,
236+ 'status' : '$succeeded' ,
237+ 'user' : {'id' : '1234' }
238+ }
239+ self .assertEqual (client .filter (options ), response_text )
240+
241+
242+ @responses .activate
243+ def test_log_tracked_true (self ):
244+ response_text = {'action' : Verdict .ALLOW .value , 'user_id' : '1234' }
245+ responses .add (
246+ responses .POST ,
247+ 'https://api.castle.io/v1/log' ,
248+ json = response_text ,
249+ status = 200
250+ )
251+ client = Client .from_request (request (), {})
252+ options = {
253+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
254+ 'event' : '$login' ,
255+ 'status' : '$succeeded' ,
256+ 'user' : {'id' : '1234' }
257+ }
258+ response_text .update (failover = False , failover_reason = None )
259+ self .assertEqual (client .log (options ), response_text )
260+
261+ @responses .activate
262+ def test_log_tracked_true_status_500 (self ):
263+ response_text = {
264+ 'action' : Verdict .ALLOW .value ,
265+ 'user_id' : '1234' ,
266+ 'failover' : True ,
267+ 'failover_reason' : 'InternalServerError'
268+ }
269+ responses .add (
270+ responses .POST ,
271+ 'https://api.castle.io/v1/log' ,
272+ json = 'log' ,
273+ status = 500
274+ )
275+ client = Client .from_request (request (), {})
276+ options = {
277+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
278+ 'event' : '$login' ,
279+ 'status' : '$succeeded' ,
280+ 'user' : {'id' : '1234' }
281+ }
282+ self .assertEqual (client .log (options ), response_text )
283+
284+ def test_log_tracked_false (self ):
285+ response_text = {
286+ 'action' : Verdict .ALLOW .value ,
287+ 'user_id' : '1234' ,
288+ 'failover' : True ,
289+ 'failover_reason' : 'Castle set to do not track.'
290+ }
291+ client = Client .from_request (request (), {})
292+ client .disable_tracking ()
293+ options = {
294+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
295+ 'event' : '$login' ,
296+ 'status' : '$succeeded' ,
297+ 'user' : {'id' : '1234' }
298+ }
299+ self .assertEqual (client .log (options ), response_text )
300+
301+ @responses .activate
302+ def test_risk_tracked_true (self ):
303+ response_text = {'action' : Verdict .ALLOW .value , 'user_id' : '1234' }
304+ responses .add (
305+ responses .POST ,
306+ 'https://api.castle.io/v1/risk' ,
307+ json = response_text ,
308+ status = 200
309+ )
310+ client = Client .from_request (request (), {})
311+ options = {
312+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
313+ 'event' : '$login' ,
314+ 'status' : '$succeeded' ,
315+ 'user' : {'id' : '1234' }
316+ }
317+ response_text .update (failover = False , failover_reason = None )
318+ self .assertEqual (client .risk (options ), response_text )
319+
320+ @responses .activate
321+ def test_risk_tracked_true_status_500 (self ):
322+ response_text = {
323+ 'action' : Verdict .ALLOW .value ,
324+ 'user_id' : '1234' ,
325+ 'failover' : True ,
326+ 'failover_reason' : 'InternalServerError'
327+ }
328+ responses .add (
329+ responses .POST ,
330+ 'https://api.castle.io/v1/risk' ,
331+ json = 'risk' ,
332+ status = 500
333+ )
334+ client = Client .from_request (request (), {})
335+ options = {
336+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
337+ 'event' : '$login' ,
338+ 'status' : '$succeeded' ,
339+ 'user' : {'id' : '1234' }
340+ }
341+ self .assertEqual (client .risk (options ), response_text )
342+
343+ def test_risk_tracked_false (self ):
344+ response_text = {
345+ 'action' : Verdict .ALLOW .value ,
346+ 'user_id' : '1234' ,
347+ 'failover' : True ,
348+ 'failover_reason' : 'Castle set to do not track.'
349+ }
350+ client = Client .from_request (request (), {})
351+ client .disable_tracking ()
352+ options = {
353+ 'request_token' : '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302' ,
354+ 'event' : '$login' ,
355+ 'status' : '$succeeded' ,
356+ 'user' : {'id' : '1234' }
357+ }
358+ self .assertEqual (client .risk (options ), response_text )
359+
182360 def test_disable_tracking (self ):
183361 client = Client .from_request (request (), {})
184362 client .disable_tracking ()
@@ -202,7 +380,7 @@ def test_tracked_when_do_not_track_true(self):
202380 def test_failover_strategy_not_throw (self ):
203381 options = {'user_id' : '1234' }
204382 self .assertEqual (
205- Client .failover_response_or_raise (options , Exception ()),
383+ Client .failover_response_or_raise (options . get ( 'user_id' ) , Exception ()),
206384 {
207385 'action' : Verdict .ALLOW .value ,
208386 'user_id' : '1234' ,
0 commit comments