@@ -269,17 +269,49 @@ def test_scan_file(tmpdir):
269269 for call in responses .calls :
270270 assert call .request .headers .get ("Authorization" ) == "Bearer NF-NOT_REAL"
271271
272- assert responses .calls [0 ].request .body == '{"fileSizeBytes": 44}'
272+ assert responses .calls [0 ].request .body == b '{"fileSizeBytes": 44}'
273273 assert responses .calls [1 ].request .body == b"4916-6734-7572-5015 is"
274274 assert responses .calls [1 ].request .headers .get ("X-UPLOAD-OFFSET" ) == '0'
275275 assert responses .calls [2 ].request .body == b" my credit card number"
276276 assert responses .calls [2 ].request .headers .get ("X-UPLOAD-OFFSET" ) == '22'
277- assert responses .calls [4 ].request .body == '{"policy": {"webhookURL": "https://my-website.example/callback", ' \
278- '"detectionRuleUUIDs": ["a_uuid"]}, "requestMetadata": "some test data"}'
277+ assert responses .calls [4 ].request .body == b '{"policy": {"webhookURL": "https://my-website.example/callback", ' \
278+ b '"detectionRuleUUIDs": ["a_uuid"]}, "requestMetadata": "some test data"}'
279279 assert id == 1
280280 assert message == "scan_started"
281281
282282
283+ @responses .activate
284+ def test_file_scan_upload_short (tmpdir ):
285+ file = tmpdir .mkdir ("test_data" ).join ("file.txt" )
286+
287+ file .write ("4916-6734-7572-5015 is my credit card number" )
288+
289+ nightfall = Nightfall ("NF-NOT_REAL" )
290+
291+ responses .add (responses .PATCH , 'https://api.nightfall.ai/v3/upload/1' , status = 204 )
292+
293+ assert nightfall ._file_scan_upload (1 , file , 200 )
294+ assert len (responses .calls ) == 1
295+
296+
297+ @responses .activate
298+ def test_file_scan_upload_long (tmpdir ):
299+ file = tmpdir .mkdir ("test_data" ).join ("file.txt" )
300+ test_str = b"4916-6734-7572-5015 is my credit card number"
301+ file .write_binary (test_str )
302+
303+ responses .add (responses .PATCH , 'https://api.nightfall.ai/v3/upload/1' , status = 204 )
304+
305+ nightfall = Nightfall ("NF-NOT_REAL" )
306+
307+ assert nightfall ._file_scan_upload (1 , file , 1 )
308+ assert len (responses .calls ) == 44
309+ for i , call in enumerate (responses .calls ):
310+ assert call .request .headers .get ("Authorization" ) == "Bearer NF-NOT_REAL"
311+ assert call .request .body .decode ('utf-8' ) == test_str .decode ('utf-8' )[i ]
312+ assert call .request .headers .get ("X-UPLOAD-OFFSET" ) == str (i )
313+
314+
283315@freeze_time ("2021-10-04T17:30:50Z" )
284316def test_validate_webhook (nightfall ):
285317 nightfall .signing_secret = "super-secret-shhhh"
0 commit comments