3
3
Utilities and basic TestCases.
4
4
"""
5
5
import json
6
+ import mimetypes
6
7
import os
7
8
import shutil
8
9
@@ -421,13 +422,14 @@ def __init__(self):
421
422
}
422
423
423
424
424
- def get_dummy_file (content = None ):
425
- filename = generateRandomKey () + ".pdf"
425
+ def get_dummy_attachment (name = None , content = None ):
426
+ if name is None :
427
+ name = generateRandomKey () + ".pdf"
426
428
427
- content_type = 'application/pdf'
429
+ content_type , _ = mimetypes . guess_type ( name )
428
430
429
431
if content is None :
430
- content = Base64Encoder . decode ( VALID_BASE64_IMG )
432
+ content = name . encode ( )
431
433
432
434
temporary_file = SecureTemporaryFile (Settings .tmp_path )
433
435
@@ -437,9 +439,9 @@ def get_dummy_file(content=None):
437
439
State .TempUploadFiles [os .path .basename (temporary_file .filepath )] = temporary_file
438
440
439
441
return {
440
- 'id' : filename ,
442
+ 'id' : name ,
441
443
'date' : datetime_now (),
442
- 'name' : filename ,
444
+ 'name' : name ,
443
445
'description' : 'description' ,
444
446
'body' : temporary_file ,
445
447
'size' : len (content ),
@@ -459,7 +461,7 @@ def check_confirmation(self):
459
461
460
462
461
463
def get_file_upload (self ):
462
- return get_dummy_file ()
464
+ return get_dummy_attachment ()
463
465
464
466
465
467
BaseHandler .get_file_upload = get_file_upload
@@ -718,8 +720,8 @@ def get_dummy_submission(self, context_id):
718
720
'receipt' : GCE .derive_key (GCE .generate_receipt (), VALID_SALT )
719
721
})
720
722
721
- def get_dummy_file (self , content = None ):
722
- return get_dummy_file ( content )
723
+ def get_dummy_attachment (self , name = None , content = None ):
724
+ return get_dummy_attachment ( name = name , content = content )
723
725
724
726
def get_dummy_redirect (self , x = '' ):
725
727
return {
@@ -732,7 +734,7 @@ def emulate_file_upload(self, session, n):
732
734
This emulates the file upload of an incomplete submission
733
735
"""
734
736
for _ in range (n ):
735
- session .files .append (self .get_dummy_file ())
737
+ session .files .append (self .get_dummy_attachment ())
736
738
737
739
def pollute_events (self , number_of_times = 10 ):
738
740
for _ in range (number_of_times ):
@@ -886,7 +888,7 @@ def perform_submission_start(self):
886
888
887
889
def perform_submission_uploads (self , submission_id ):
888
890
for _ in range (self .population_of_attachments ):
889
- Sessions .get (submission_id ).files .append (self .get_dummy_file ())
891
+ Sessions .get (submission_id ).files .append (self .get_dummy_attachment ())
890
892
891
893
@inlineCallbacks
892
894
def perform_submission_actions (self , session_id ):
@@ -973,14 +975,16 @@ class TestHandler(TestGLWithPopulatedDB):
973
975
#
974
976
# }
975
977
# }
978
+ can_upload_files = True
976
979
977
980
def setUp (self ):
978
981
return TestGL .setUp (self )
979
982
980
983
def request (self , body = '' , uri = b'https://www.globaleaks.org/' ,
981
- user_id = None , role = None , multilang = False , headers = None , args = None ,
982
- client_addr = b'127.0.0.1' , handler_cls = None , attached_file = None ,
983
- kwargs = None , token = False ):
984
+ user_id = None , role = None , multilang = False , headers = None , token = False , permissions = None ,
985
+ client_addr = b'127.0.0.1' ,
986
+ handler_cls = None , attachment = None ,
987
+ args = None , kwargs = None ):
984
988
"""
985
989
Constructs a handler for preforming mock requests using the bag of params described below.
986
990
"""
@@ -1012,6 +1016,9 @@ def request(self, body='', uri=b'https://www.globaleaks.org/',
1012
1016
else :
1013
1017
session = Sessions .new (1 , user_id , 1 , role , USER_PRV_KEY , USER_ESCROW_PRV_KEY if role == 'admin' else '' )
1014
1018
1019
+ if permissions :
1020
+ session .permissions = permissions
1021
+
1015
1022
headers [b'x-session' ] = session .id
1016
1023
1017
1024
# during unit tests a token is always provided to any handler
@@ -1041,7 +1048,7 @@ def request(self, body='', uri=b'https://www.globaleaks.org/',
1041
1048
request .language = None
1042
1049
1043
1050
if handler .upload_handler :
1044
- handler .uploaded_file = self .get_dummy_file ( attached_file )
1051
+ handler .uploaded_file = attachment if attachment else self .get_dummy_attachment ( )
1045
1052
1046
1053
return handler
1047
1054
0 commit comments