def test_create_receiverfiles_allow_unencrypted_true_no_keys_loaded(self): yield self.test_create_submission_attach_files_finalize_and_access_wbtip() # create receivertip its NEEDED to create receiverfile self.rt = yield delivery_sched.tip_creation() self.assertTrue(isinstance(self.rt, list)) self.rfilesdict = yield delivery_sched.receiverfile_planning() # return a list of lists [ "file_id", status, "f_path", len, "receiver_desc" ] self.assertTrue(isinstance(self.rfilesdict, dict)) for ifile_path, receivermap in self.rfilesdict.iteritems(): yield delivery_sched.encrypt_where_available(receivermap) for elem in receivermap: yield delivery_sched.receiverfile_create(ifile_path, elem['path'], elem['status'], elem['size'], elem['receiver']) self.fil = yield delivery_sched.get_files_by_itip(self.submission_desc['id']) self.assertTrue(isinstance(self.fil, list)) self.assertEqual(len(self.fil), 3) self.rfi = yield delivery_sched.get_receiverfile_by_itip(self.submission_desc['id']) self.assertTrue(isinstance(self.rfi, list)) self.assertEqual(len(self.rfi), 6) for i in range(0, 6): self.assertTrue(self.rfi[i]['status'] in [u'reference', u'encrypted']) self.wbfls = yield collect_ifile_as_wb_without_wbtip(self.submission_desc['id']) self.assertEqual(len(self.wbfls), 3)
def test_submission_file_delivery_pgp(self): new_fields = MockDict().dummyFields new_context = MockDict().dummyContext new_context['steps'][0]['children'] = [] new_context['name'] = "this uniqueness is no more checked due to the lang" new_context_output = yield create_context(new_context, 'en') self.context_assertions(new_context, new_context_output) doubletest = yield get_context_list('en') self.assertEqual(len(doubletest), 2) yanr = dict(MockDict().dummyReceiver) yanr['name'] = yanr['mail_address'] = u"*****@*****.**" yanr['pgp_key_public'] = unicode(VALID_PGP_KEY1) yanr['contexts'] = [ new_context_output['id']] yanr_output = yield create_receiver(yanr, 'en') self.receiver_assertions(yanr, yanr_output) asdr = dict(MockDict().dummyReceiver) asdr['name'] = asdr['mail_address'] = u"*****@*****.**" asdr['pgp_key_public'] = unicode(VALID_PGP_KEY1) asdr['contexts'] = [ new_context_output['id']] asdr_output = yield create_receiver(asdr, 'en') self.receiver_assertions(asdr, asdr_output) new_subm = dict(MockDict().dummySubmission) new_subm['finalize'] = False new_subm['context_id'] = new_context_output['id'] new_subm['receivers'] = [ asdr_output['id'], yanr_output['id'] ] new_subm['wb_steps'] = yield self.fill_random_fields(new_context_output['id']) token = Token('submission', new_context_output['id']) yield self.emulate_file_upload(token, 3) new_subm_output = yield submission.create_submission(token, new_subm, 'en') yield DeliverySchedule().operation() # now get a lots of receivertips/receiverfiles and check! ifilist = yield get_files_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(ifilist), 3) rfilist = yield get_receiverfile_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(rfilist), 6) for i in range(0, 3): self.assertLess(ifilist[0]['size'], rfilist[i]['size']) self.assertEqual(rfilist[0]['status'], u"encrypted" )
def test_submission_file_delivery_pgp(self): new_fields = MockDict().dummyFields new_context = MockDict().dummyContext new_context['name'] = "this uniqueness is no more checked due to the lang" new_context_output = yield create_context(new_context, 'en') self.context_assertions(new_context, new_context_output) doubletest = yield get_context_list('en') self.assertEqual(len(doubletest), 2) yanr = dict(MockDict().dummyReceiver) yanr['name'] = u"Receiver1" yanr['pgp_key_public'] = unicode(VALID_PGP_KEY1) yanr['contexts'] = [ new_context_output['id']] yanr_output = yield create_receiver(yanr, 'en') self.receiver_assertions(yanr, yanr_output) asdr = dict(MockDict().dummyReceiver) asdr['name'] = u"Receiver2" asdr['pgp_key_public'] = unicode(VALID_PGP_KEY1) asdr['contexts'] = [ new_context_output['id']] asdr_output = yield create_receiver(asdr, 'en') self.receiver_assertions(asdr, asdr_output) new_subm = dict(MockDict().dummySubmission) new_subm['finalize'] = False new_subm['context_id'] = new_context_output['id'] new_subm['receivers'] = [ asdr_output['id'], yanr_output['id'] ] new_subm['wb_steps'] = yield self.fill_random_answers(new_context_output['id']) token = Token('submission') yield self.emulate_file_upload(token, 3) new_subm_output = yield submission.create_submission(token.id, new_subm, False, 'en') yield DeliverySchedule().operation() # now get a lots of receivertips/receiverfiles and check! ifilist = yield get_files_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(ifilist), 3) rfilist = yield get_receiverfile_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(rfilist), 6) for i in range(0, 3): self.assertLess(ifilist[0]['size'], rfilist[i]['size']) self.assertEqual(rfilist[0]['status'], u"encrypted" )
def test_005_create_receiverfiles_allow_unencrypted_false_no_keys_loaded( self): GLSetting.memory_copy.allow_unencrypted = False yield self.test_003_create_submission_attach_files_finalize_and_access_wbtip( ) # create receivertip its NEEDED to create receiverfile self.rt = yield delivery_sched.tip_creation() self.assertTrue(isinstance(self.rt, list)) self.rfilesdict = yield delivery_sched.receiverfile_planning() # return a list of lists [ "file_id", status, "f_path", len, "receiver_desc" ] self.assertTrue(isinstance(self.rfilesdict, dict)) for ifile_path, receivermap in self.rfilesdict.iteritems(): yield delivery_sched.encrypt_where_available(receivermap) for elem in receivermap: rfdesc = yield delivery_sched.receiverfile_create( ifile_path, elem['path'], elem['status'], elem['size'], elem['receiver']) self.assertEqual(rfdesc['mark'], u'not notified') self.assertEqual(rfdesc['receiver_id'], elem['receiver']['id']) self.fil = yield delivery_sched.get_files_by_itip( self.dummySubmission['id']) self.assertTrue(isinstance(self.fil, list)) self.assertEqual(len(self.fil), 4) self.rfi = yield delivery_sched.get_receiverfile_by_itip( self.dummySubmission['id']) self.assertTrue(isinstance(self.rfi, list)) self.assertEqual(len(self.rfi), 8) # no rfiles are created for the receivers that have no key for i in range(0, 8): self.assertTrue( self.rfi[i]['mark'] in [u'not notified', u'skipped']) self.assertTrue(self.rfi[i]['status'] in [u'reference', u'nokey']) # verify the checksum returned by whistleblower POV, I'm not using # wfv = yield tip.get_files_wb() # because is not generated a WhistleblowerTip in this test self.wbfls = yield collect_ifile_as_wb_without_wbtip( self.dummySubmission['id']) self.assertEqual(len(self.wbfls), 4)
def test_create_receiverfiles_allow_unencrypted_true_no_keys_loaded(self): yield self.test_create_submission_attach_files_finalize_and_access_wbtip() yield delivery_sched.DeliverySchedule().operation() self.fil = yield delivery_sched.get_files_by_itip(self.submission_desc['id']) self.assertTrue(isinstance(self.fil, list)) self.assertEqual(len(self.fil), 3) self.rfi = yield delivery_sched.get_receiverfile_by_itip(self.submission_desc['id']) self.assertTrue(isinstance(self.rfi, list)) self.assertEqual(len(self.rfi), 6) for i in range(0, 6): self.assertTrue(self.rfi[i]['status'] in [u'reference', u'encrypted']) self.wbfls = yield collect_ifile_as_wb_without_wbtip(self.submission_desc['id']) self.assertEqual(len(self.wbfls), 3)
def test_005_create_receiverfiles_allow_unencrypted_false_no_keys_loaded(self): GLSetting.memory_copy.allow_unencrypted = False yield self.test_003_create_submission_attach_files_finalize_and_access_wbtip() # create receivertip its NEEDED to create receiverfile self.rt = yield delivery_sched.tip_creation() self.assertTrue(isinstance(self.rt, list)) self.rfilesdict = yield delivery_sched.receiverfile_planning() # return a list of lists [ "file_id", status, "f_path", len, "receiver_desc" ] self.assertTrue(isinstance(self.rfilesdict, dict)) for ifile_path, receivermap in self.rfilesdict.iteritems(): yield delivery_sched.encrypt_where_available(receivermap) for elem in receivermap: rfdesc = yield delivery_sched.receiverfile_create(ifile_path, elem['path'], elem['status'], elem['size'], elem['receiver']) self.assertEqual(rfdesc['mark'], u'not notified') self.assertEqual(rfdesc['receiver_id'], elem['receiver']['id']) self.fil = yield delivery_sched.get_files_by_itip(self.dummySubmission['id']) self.assertTrue(isinstance(self.fil, list)) self.assertEqual(len(self.fil), 4) self.rfi = yield delivery_sched.get_receiverfile_by_itip(self.dummySubmission['id']) self.assertTrue(isinstance(self.rfi, list)) self.assertEqual(len(self.rfi), 8) # no rfiles are created for the receivers that have no key for i in range(0, 8): self.assertTrue(self.rfi[i]['mark'] in [u'not notified', u'skipped']) self.assertTrue(self.rfi[i]['status'] in [u'reference', u'nokey']) # verify the checksum returned by whistleblower POV, I'm not using # wfv = yield tip.get_files_wb() # because is not generated a WhistleblowerTip in this test self.wbfls = yield collect_ifile_as_wb_without_wbtip(self.dummySubmission['id']) self.assertEqual(len(self.wbfls), 4)
def test_create_receiverfiles(self): yield self.emulate_file_upload(self.dummySubmission["submission_gus"]) yield self._force_finalize(self.dummySubmission["submission_gus"]) # create receivertip its NEEDED to create receiverfile rt = yield delivery_sched.tip_creation() self.assertTrue(isinstance(rt, list)) rfileslist = yield delivery_sched.receiverfile_planning() # return a list of lists [ "file_id", status, "f_path", len, "receiver_desc" ] self.assertTrue(isinstance(rfileslist, list)) for (fid, status, fpath, flen, receiver_desc) in rfileslist: rfdesc = yield delivery_sched.receiverfile_create(fid, status, fpath, flen, receiver_desc) self.assertEqual(rfdesc["mark"], "not notified") self.assertEqual(rfdesc["receiver_id"], receiver_desc["receiver_gus"]) self.assertEqual(rfdesc["internalfile_id"], fid) fil = yield delivery_sched.get_files_by_itip(self.dummySubmission["submission_gus"]) self.assertTrue(isinstance(fil, list)) self.assertEqual(len(fil), 2) rfi = yield delivery_sched.get_receiverfile_by_itip(self.dummySubmission["submission_gus"]) self.assertTrue(isinstance(rfi, list)) self.assertEqual(len(rfi), 2) self.assertEqual(rfi[0]["mark"], "not notified") self.assertEqual(rfi[1]["mark"], "not notified") self.assertEqual(rfi[0]["status"], "reference") self.assertEqual(rfi[1]["status"], "reference") # verify the checksum returned by whistleblower POV, I'm not using # wfv = yield tip.get_files_wb() # because is not generated a WhistleblowerTip in this test wbfls = yield collect_ifile_as_wb_without_wbtip(self.dummySubmission["submission_gus"]) self.assertEqual(len(wbfls), 2) self.assertEqual(wbfls[0]["sha2sum"], fil[0]["sha2sum"]) self.assertEqual(wbfls[1]["sha2sum"], fil[1]["sha2sum"])
def test_create_receiverfiles_allow_unencrypted_true_no_keys_loaded(self): yield self.test_create_submission_attach_files_finalize_and_access_wbtip( ) yield delivery_sched.DeliverySchedule().operation() self.fil = yield delivery_sched.get_files_by_itip( self.submission_desc['id']) self.assertTrue(isinstance(self.fil, list)) self.assertEqual(len(self.fil), 3) self.rfi = yield delivery_sched.get_receiverfile_by_itip( self.submission_desc['id']) self.assertTrue(isinstance(self.rfi, list)) self.assertEqual(len(self.rfi), 6) for i in range(0, 6): self.assertTrue( self.rfi[i]['status'] in [u'reference', u'encrypted']) self.wbfls = yield collect_ifile_as_wb_without_wbtip( self.submission_desc['id']) self.assertEqual(len(self.wbfls), 3)
def test_submission_file_delivery_gpg(self): new_context = dict(MockDict().dummyContext) new_context['name'] = "this uniqueness is no more checked due to the lang" new_context_output = yield create_context(new_context) self.context_assertion(new_context, new_context_output) doubletest = yield get_context_list('en') self.assertEqual(len(doubletest), 2) yanr = dict(MockDict().dummyReceiver) yanr['name'] = yanr['notification_fields']['mail_address'] = "*****@*****.**" yanr['gpg_key_armor'] = unicode(DeveloperKey.__doc__) yanr['gpg_enable_files'] = True yanr['contexts'] = [ new_context_output['context_gus']] yanr_output = yield create_receiver(yanr) self.receiver_assertion(yanr, yanr_output) asdr = dict(MockDict().dummyReceiver) asdr['name'] = asdr['notification_fields']['mail_address'] = "*****@*****.**" asdr['gpg_key_armor'] = unicode(DeveloperKey.__doc__) asdr['gpg_enable_files'] = True asdr['contexts'] = [ new_context_output['context_gus']] asdr_output = yield create_receiver(asdr) self.receiver_assertion(asdr, asdr_output) new_subm = dict(MockDict().dummySubmission) new_subm['finalize'] = False new_subm['context_gus'] = new_context_output['context_gus'] new_subm['receivers'] = [ asdr_output['receiver_gus'], yanr_output['receiver_gus'] ] new_subm_output = yield create_submission(new_subm, False) # self.submission_assertion(new_subm, new_subm_output) new_file = dict(MockDict().dummyFile) (relationship1, cksum, fsize) = yield threads.deferToThread(files.dump_file_fs, new_file) # encrypted output is always greater than the not encrypted self.assertGreater(fsize, new_file['body_len']) self.registered_file1 = yield files.register_file_db( new_file, relationship1, cksum, new_subm_output['submission_gus'] ) new_subm['submission_gus'] = new_subm_output['submission_gus'] new_subm['finalize'] = True new_subm_output = yield update_submission(new_subm['submission_gus'], new_subm, True) yield APSDelivery().operation() # now get a lots of receivertips/receiverfiles and check! ifilist = yield get_files_by_itip(new_subm_output['submission_gus']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(ifilist), 1) self.assertEqual(ifilist[0]['mark'], u'delivered') rfilist = yield get_receiverfile_by_itip(new_subm_output['submission_gus']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(rfilist), 2) self.assertLess(ifilist[0]['size'], rfilist[0]['size']) self.assertLess(ifilist[0]['size'], rfilist[1]['size']) self.assertEqual(rfilist[0]['status'], u"encrypted" )
def test_submission_file_delivery_gpg(self): new_context = dict(MockDict().dummyContext) new_context['name'] = "this uniqueness is no more checked due to the lang" new_context_output = yield create_context(new_context) self.context_assertion(new_context, new_context_output) doubletest = yield get_context_list('en') self.assertEqual(len(doubletest), 2) yanr = dict(MockDict().dummyReceiver) yanr['name'] = yanr['mail_address'] = u"*****@*****.**" yanr['gpg_key_armor'] = unicode(VALID_PGP_KEY) yanr['contexts'] = [ new_context_output['id']] yanr_output = yield create_receiver(yanr) self.receiver_assertion(yanr, yanr_output) asdr = dict(MockDict().dummyReceiver) asdr['name'] = asdr['mail_address'] = u"*****@*****.**" asdr['gpg_key_armor'] = unicode(VALID_PGP_KEY) asdr['contexts'] = [ new_context_output['id']] asdr_output = yield create_receiver(asdr) self.receiver_assertion(asdr, asdr_output) new_subm = dict(MockDict().dummySubmission) new_subm['finalize'] = False new_subm['context_id'] = new_context_output['id'] new_subm['receivers'] = [ asdr_output['id'], yanr_output['id'] ] new_subm['wb_fields'] = fill_random_fields(new_context_output) new_subm_output = yield create_submission(new_subm, False) # self.submission_assertion(new_subm, new_subm_output) self.emulate_file_upload(new_subm_output['id']) new_file = self.get_dummy_file() new_subm['id'] = new_subm_output['id'] new_subm['finalize'] = True new_subm_output = yield update_submission(new_subm['id'], new_subm, True) yield DeliverySchedule().operation() # now get a lots of receivertips/receiverfiles and check! ifilist = yield get_files_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(ifilist), 2) self.assertEqual(ifilist[0]['mark'], u'delivered') rfilist = yield get_receiverfile_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(rfilist), 2) for i in range(0, 2): self.assertLess(ifilist[0]['size'], rfilist[i]['size']) self.assertEqual(rfilist[0]['status'], u"encrypted" )
def test_submission_file_delivery_gpg(self): new_fields = MockDict().dummyFields new_context = MockDict().dummyContext new_context['steps'][0]['children'] = [] new_context[ 'name'] = "this uniqueness is no more checked due to the lang" new_context_output = yield create_context(new_context, 'en') self.context_assertion(new_context, new_context_output) doubletest = yield get_context_list('en') self.assertEqual(len(doubletest), 2) yanr = dict(MockDict().dummyReceiver) yanr['name'] = yanr['mail_address'] = u"*****@*****.**" yanr['gpg_key_armor'] = unicode(VALID_PGP_KEY1) yanr['contexts'] = [new_context_output['id']] yanr_output = yield create_receiver(yanr, 'en') self.receiver_assertion(yanr, yanr_output) asdr = dict(MockDict().dummyReceiver) asdr['name'] = asdr['mail_address'] = u"*****@*****.**" asdr['gpg_key_armor'] = unicode(VALID_PGP_KEY1) asdr['contexts'] = [new_context_output['id']] asdr_output = yield create_receiver(asdr, 'en') self.receiver_assertion(asdr, asdr_output) new_subm = dict(MockDict().dummySubmission) new_subm['finalize'] = False new_subm['context_id'] = new_context_output['id'] new_subm['receivers'] = [asdr_output['id'], yanr_output['id']] new_subm['wb_steps'] = yield fill_random_fields( new_context_output['id']) new_subm_output = yield create_submission(new_subm, False, 'en') # self.submission_assertion(new_subm, new_subm_output) self.emulate_file_upload(new_subm_output['id']) new_file = self.get_dummy_file() new_subm['id'] = new_subm_output['id'] new_subm['finalize'] = True new_subm_output = yield update_submission(new_subm['id'], new_subm, True, 'en') yield DeliverySchedule().operation() # now get a lots of receivertips/receiverfiles and check! ifilist = yield get_files_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(ifilist), 2) self.assertEqual(ifilist[0]['mark'], u'delivered') rfilist = yield get_receiverfile_by_itip(new_subm_output['id']) self.assertTrue(isinstance(ifilist, list)) self.assertEqual(len(rfilist), 2) for i in range(0, 2): self.assertLess(ifilist[0]['size'], rfilist[i]['size']) self.assertEqual(rfilist[0]['status'], u"encrypted")