def test_003_create_submission_attach_files_finalize_and_access_wbtip( self): submission_desc = dict(self.dummySubmission) submission_desc['finalize'] = True del submission_desc['id'] status = yield submission.create_submission(submission_desc, finalize=False) yield self.emulate_file_upload(self.dummySubmission['id']) status = yield submission.update_submission(status['id'], status, finalize=True) self.assertEqual(status['mark'], u'finalize') receipt = yield submission.create_whistleblower_tip(status) self.assertTrue(re.match(self.dummyNode['receipt_regexp'], receipt)) wb_access_id = yield authentication.login_wb(receipt) # remind: return a tuple (serzialized_itip, wb_itip) wb_tip = yield wbtip.get_internaltip_wb(wb_access_id) # In the WB/Receiver Tip interface, wb_fields are called fields. # This can be uniformed when API would be cleaned of the _id self.assertTrue(wb_tip.has_key('fields'))
def test_003_create_submission_attach_files_finalize_and_access_wbtip(self): submission_desc = dict(self.dummySubmission) submission_desc['finalize'] = True del submission_desc['id'] status = yield submission.create_submission(submission_desc, finalize=False) yield self.emulate_file_upload(self.dummySubmission['id']) status = yield submission.update_submission(status['id'], status, finalize=True) self.assertEqual(status['mark'], u'finalize') receipt = yield submission.create_whistleblower_tip(status) self.assertTrue(re.match(self.dummyNode['receipt_regexp'], receipt)) wb_access_id = yield authentication.login_wb(receipt) # remind: return a tuple (serzialized_itip, wb_itip) wb_tip = yield wbtip.get_internaltip_wb(wb_access_id) # In the WB/Receiver Tip interface, wb_fields are called fields. # This can be uniformed when API would be cleaned of the _id self.assertTrue(wb_tip.has_key('fields'))
def do_finalize_submission(self): self.submission_desc['finalize'] = True self.submission_desc['wb_fields'] = helpers.fill_random_fields(self.context_desc) self.submission_desc = yield submission.update_submission( self.submission_desc['id'], self.submission_desc, finalize=True) self.assertEqual(self.submission_desc['mark'], models.InternalTip._marker[1]) submission.create_whistleblower_tip(self.submission_desc)
def test_unable_to_access_finalized(self): submission_desc = dict(self.dummySubmission) submission_desc["finalize"] = True submission_desc["context_gus"] = self.dummyContext["context_gus"] status = yield submission.create_submission(submission_desc, finalize=True) try: yield submission.update_submission(status["submission_gus"], status, finalize=True) except errors.SubmissionConcluded: self.assertTrue(True) return self.assertTrue(False)
def test_009_unable_to_access_finalized(self): submission_desc = dict(self.dummySubmission) submission_desc['finalize'] = True submission_desc['context_id'] = self.dummyContext['id'] status = yield submission.create_submission(submission_desc, finalize=True) try: yield submission.update_submission(status['id'], status, finalize=True) except errors.SubmissionConcluded: self.assertTrue(True) return self.assertTrue(False)
def test_submission_with_receiver_selection(self): yield create_receiver(self.get_new_receiver_desc("second")) yield create_receiver(self.get_new_receiver_desc("third")) yield create_receiver(self.get_new_receiver_desc("fourth")) # for some reason, the first receiver is no more with the same ID self.receivers = yield get_receiver_list() self.assertEqual(len(self.receivers), 4) self.dummyContext["receivers"] = [ self.receivers[0]["receiver_gus"], self.receivers[1]["receiver_gus"], self.receivers[2]["receiver_gus"], self.receivers[3]["receiver_gus"], ] self.dummyContext["selectable_receiver"] = True self.dummyContext["escalation_threshold"] = 0 context_status = yield update_context(self.dummyContext["context_gus"], self.dummyContext) # Create a new request with selected three of the four receivers submission_request = dict(self.dummySubmission) # submission_request['context_gus'] = context_status['context_gus'] submission_request["submission_gus"] = submission_request["id"] = "" submission_request["finalize"] = False submission_request["receivers"] = [ self.receivers[0]["receiver_gus"], self.receivers[1]["receiver_gus"], self.receivers[2]["receiver_gus"], ] status = yield submission.create_submission(submission_request, finalize=False) just_empty_eventually_internaltip = yield delivery_sched.tip_creation() # Checks, the submission need to be the same now self.assertEqual(len(submission_request["receivers"]), len(status["receivers"])) status["finalize"] = True submission_request["context_gus"] = context_status["context_gus"] # reused status["receivers"] = [self.receivers[0]["receiver_gus"], self.receivers[3]["receiver_gus"]] status = yield submission.update_submission(status["submission_gus"], status, finalize=True) receiver_tips = yield delivery_sched.tip_creation() self.assertEqual(len(receiver_tips), len(status["receivers"]))
def test_006_submission_with_receiver_selection_allow_unencrypted_true_no_keys_loaded( self): # for some reason, the first receiver is no more with the same ID self.receivers = yield get_receiver_list() rcvrs_ids = [] for rcvr in self.receivers: rcvrs_ids.append(rcvr['id']) self.dummyContext['receivers'] = rcvrs_ids self.dummyContext['selectable_receiver'] = True self.dummyContext['escalation_threshold'] = 0 for attrname in models.Context.localized_strings: self.dummyContext[attrname] = u'⅛¡⅜⅛’ŊÑŦŊŊ’‘ª‘ª’‘ÐŊ' context_status = yield update_context(self.dummyContext['id'], self.dummyContext) # Create a new request with selected three of the four receivers submission_request = dict(self.dummySubmission) # submission_request['context_id'] = context_status['context_id'] submission_request['id'] = '' submission_request['finalize'] = False submission_request['receivers'] = rcvrs_ids status = yield submission.create_submission(submission_request, finalize=False) just_empty_eventually_internaltip = yield delivery_sched.tip_creation() # Checks, the submission need to be the same now self.assertEqual(len(submission_request['receivers']), len(status['receivers'])) status['finalize'] = True submission_request['context_id'] = context_status['id'] # reused status['receivers'] = rcvrs_ids status = yield submission.update_submission(status['id'], status, finalize=True) receiver_tips = yield delivery_sched.tip_creation() self.assertEqual(len(receiver_tips), len(status['receivers']))
def perform_submission(self): self.dummySubmission['context_id'] = self.dummyContext['id'] self.dummySubmission['receivers'] = self.dummyContext['receivers'] self.dummySubmission['wb_steps'] = yield fill_random_fields(self.dummyContext['id']) self.dummySubmission = yield create_submission(self.dummySubmission, False, 'en') yield self.emulate_file_upload(self.dummySubmission['id']) submission = yield update_submission(self.dummySubmission['id'], self.dummySubmission, True, 'en') self.dummyWBTip = yield create_whistleblower_tip(self.dummySubmission) yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation() commentCreation = { 'content': 'comment!', } messageCreation = { 'content': 'message!', } rtips_desc = yield self.get_rtips() for rtip_desc in rtips_desc: yield rtip.create_comment_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], commentCreation) yield rtip.create_message_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], messageCreation) wbtips_desc = yield self.get_wbtips() for wbtip_desc in wbtips_desc: yield wbtip.create_comment_wb(wbtip_desc['wbtip_id'], commentCreation) for receiver_id in wbtip_desc['wbtip_receivers']: yield wbtip.create_message_wb(wbtip_desc['wbtip_id'], receiver_id, messageCreation) yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation()
def test_update_submission(self): submission_desc = dict(self.dummySubmission) submission_desc["finalize"] = False submission_desc["context_gus"] = self.dummyContext["context_gus"] submission_desc["submission_gus"] = submission_desc["id"] = submission_desc["mark"] = None status = yield submission.create_submission(submission_desc, finalize=False) status["wb_fields"] = helpers.fill_random_fields(self.dummyContext) status["finalize"] = True status = yield submission.update_submission(status["submission_gus"], status, finalize=True) receipt = yield submission.create_whistleblower_tip(status) wb_access_id = yield authentication.login_wb(receipt) wb_tip = yield tip.get_internaltip_wb(wb_access_id) self.assertTrue(wb_tip.has_key("fields"))
def test_008_update_submission(self): submission_desc = dict(self.dummySubmission) submission_desc['finalize'] = False submission_desc['context_id'] = self.dummyContext['id'] submission_desc['id'] = submission_desc['mark'] = None status = yield submission.create_submission(submission_desc, finalize=False) status['wb_fields'] = helpers.fill_random_fields(self.dummyContext) status['finalize'] = True status = yield submission.update_submission(status['id'], status, finalize=True) receipt = yield submission.create_whistleblower_tip(status) wb_access_id = yield authentication.login_wb(receipt) wb_tip = yield wbtip.get_internaltip_wb(wb_access_id) self.assertTrue(wb_tip.has_key('fields'))
def test_006_submission_with_receiver_selection_allow_unencrypted_true_no_keys_loaded(self): # for some reason, the first receiver is no more with the same ID self.receivers = yield get_receiver_list() rcvrs_ids = [] for rcvr in self.receivers: rcvrs_ids.append(rcvr['id']) self.dummyContext['receivers'] = rcvrs_ids self.dummyContext['selectable_receiver'] = True self.dummyContext['escalation_threshold'] = 0 for attrname in models.Context.localized_strings: self.dummyContext[attrname] = u'⅛¡⅜⅛’ŊÑŦŊŊ’‘ª‘ª’‘ÐŊ' context_status = yield update_context(self.dummyContext['id'], self.dummyContext) # Create a new request with selected three of the four receivers submission_request= dict(self.dummySubmission) # submission_request['context_id'] = context_status['context_id'] submission_request['id'] = '' submission_request['finalize'] = False submission_request['receivers'] = rcvrs_ids status = yield submission.create_submission(submission_request, finalize=False) just_empty_eventually_internaltip = yield delivery_sched.tip_creation() # Checks, the submission need to be the same now self.assertEqual(len(submission_request['receivers']), len(status['receivers'])) status['finalize'] = True submission_request['context_id'] = context_status['id'] # reused status['receivers'] = rcvrs_ids status = yield submission.update_submission(status['id'], status, finalize=True) receiver_tips = yield delivery_sched.tip_creation() self.assertEqual(len(receiver_tips), len(status['receivers']))
def test_create_submission_attach_files_finalize_and_access_wbtip(self): submission_desc = dict(self.dummySubmission) submission_desc['finalize'] = True del submission_desc['id'] status = yield submission.create_submission(submission_desc, finalize=False) yield self.emulate_file_upload(self.dummySubmission['id']) status = yield submission.update_submission(status['id'], status, finalize=True) self.assertEqual(status['mark'], u'finalize') receipt = yield submission.create_whistleblower_tip(status) self.assertTrue(re.match(GLSetting.defaults.receipt_regexp, receipt)) wb_access_id = yield authentication.login_wb(receipt) # remind: return a tuple (serzialized_itip, wb_itip) wb_tip = yield wbtip.get_internaltip_wb(wb_access_id) self.assertTrue(wb_tip.has_key('wb_steps'))
def fill_data(self): try: yield do_appdata_init() except Exception as excp: print "Fail fill_data/do_appdata_init: %s" % excp raise excp receivers_ids = [] try: self.dummyReceiver_1 = yield create_receiver(self.dummyReceiver_1) receivers_ids.append(self.dummyReceiver_1['id']) self.dummyReceiver_2 = yield create_receiver(self.dummyReceiver_2) receivers_ids.append(self.dummyReceiver_2['id']) except Exception as excp: print "Fail fill_data/create_receiver: %s" % excp raise excp try: self.dummyContext['receivers'] = receivers_ids self.dummyContext = yield create_context(self.dummyContext) except Exception as excp: print "Fail fill_data/create_context: %s" % excp raise excp self.dummySubmission['context_id'] = self.dummyContext['id'] self.dummySubmission['receivers'] = receivers_ids self.dummySubmission['wb_fields'] = fill_random_fields(self.dummyContext) try: self.dummySubmissionNotFinalized = yield create_submission(self.dummySubmission, finalize=False) except Exception as excp: print "Fail fill_data/create_submission: %s" % excp raise excp try: self.dummySubmission = yield create_submission(self.dummySubmission, finalize=False) except Exception as excp: print "Fail fill_data/create_submission: %s" % excp raise excp yield self.emulate_file_upload(self.dummySubmission['id']) try: submission = yield update_submission(self.dummySubmission['id'], self.dummySubmission, finalize=True) except Exception as excp: print "Fail fill_data/update_submission: %s" % excp raise excp try: self.dummyWBTip = yield create_whistleblower_tip(self.dummySubmission) except Exception as excp: print "Fail fill_data/create_whistleblower: %s" % excp raise excp assert self.dummyReceiver_1.has_key('id') assert self.dummyReceiver_2.has_key('id') assert self.dummyContext.has_key('id') assert self.dummySubmission.has_key('id') yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation() commentCreation = { 'content': 'comment!', } messageCreation = { 'content': 'message!', } rtips_desc = yield self.get_rtips() for rtip_desc in rtips_desc: yield rtip.create_comment_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], commentCreation) yield rtip.create_message_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], messageCreation) wbtips_desc = yield self.get_wbtips() for wbtip_desc in wbtips_desc: yield wbtip.create_comment_wb(wbtip_desc['wbtip_id'], commentCreation) for receiver_id in wbtip_desc['wbtip_receivers']: yield wbtip.create_message_wb(wbtip_desc['wbtip_id'], receiver_id, messageCreation) yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation()
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")
def fill_data(self): try: yield do_appdata_init() except Exception as excp: print "Fail fill_data/do_appdata_init: %s" % excp raise excp receivers_ids = [] try: self.dummyReceiver_1 = yield create_receiver(self.dummyReceiver_1) receivers_ids.append(self.dummyReceiver_1['id']) self.dummyReceiver_2 = yield create_receiver(self.dummyReceiver_2) receivers_ids.append(self.dummyReceiver_2['id']) except Exception as excp: print "Fail fill_data/create_receiver: %s" % excp raise excp try: self.dummyContext['receivers'] = receivers_ids self.dummyContext = yield create_context(self.dummyContext) except Exception as excp: print "Fail fill_data/create_context: %s" % excp raise excp self.dummySubmission['context_id'] = self.dummyContext['id'] self.dummySubmission['receivers'] = receivers_ids self.dummySubmission['wb_fields'] = fill_random_fields( self.dummyContext) try: self.dummySubmissionNotFinalized = yield create_submission( self.dummySubmission, finalize=False) except Exception as excp: print "Fail fill_data/create_submission: %s" % excp raise excp try: self.dummySubmission = yield create_submission( self.dummySubmission, finalize=False) except Exception as excp: print "Fail fill_data/create_submission: %s" % excp raise excp yield self.emulate_file_upload(self.dummySubmission['id']) try: submission = yield update_submission(self.dummySubmission['id'], self.dummySubmission, finalize=True) except Exception as excp: print "Fail fill_data/update_submission: %s" % excp raise excp try: self.dummyWBTip = yield create_whistleblower_tip( self.dummySubmission) except Exception as excp: print "Fail fill_data/create_whistleblower: %s" % excp raise excp assert self.dummyReceiver_1.has_key('id') assert self.dummyReceiver_2.has_key('id') assert self.dummyContext.has_key('id') assert self.dummySubmission.has_key('id') yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation() commentCreation = { 'content': 'comment!', } messageCreation = { 'content': 'message!', } rtips_desc = yield self.get_rtips() for rtip_desc in rtips_desc: yield rtip.create_comment_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], commentCreation) yield rtip.create_message_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], messageCreation) wbtips_desc = yield self.get_wbtips() for wbtip_desc in wbtips_desc: yield wbtip.create_comment_wb(wbtip_desc['wbtip_id'], commentCreation) for receiver_id in wbtip_desc['wbtip_receivers']: yield wbtip.create_message_wb(wbtip_desc['wbtip_id'], receiver_id, messageCreation) yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation()
def fill_data(self): yield do_appdata_init() receivers_ids = [] # fill_data/create_receiver self.dummyReceiver_1 = yield create_receiver(self.dummyReceiver_1) receivers_ids.append(self.dummyReceiver_1['id']) self.dummyReceiver_2 = yield create_receiver(self.dummyReceiver_2) receivers_ids.append(self.dummyReceiver_2['id']) # fill_data/create_context self.dummyContext['receivers'] = receivers_ids self.dummyContext = yield create_context(self.dummyContext) # fill_data: create cield templates for idx, field in enumerate(self.dummyFieldTemplates): f = yield create_field(field, 'en') self.dummyFieldTemplates[idx]['id'] = f['id'] # fill_data: create fields and associate them to the context steps for idx, field in enumerate(self.dummyFields): field['is_template'] = False if idx <= 2: # "Field 1", "Field 2" and "Generalities" are associated to the first step field['step_id'] = self.dummyContext['steps'][0]['id'] else: # Name, Surname, Gender" are associated to field "Generalities" # "Field 1" and "Field 2" are associated to the first step field['fieldgroup_id'] = self.dummyFields[2]['id'] f = yield create_field(field, 'en') self.dummyFields[idx]['id'] = f['id'] self.dummyContext['steps'][0]['children'] = [ self.dummyFields[0], # Field 1 self.dummyFields[1], # Field 2 self.dummyFields[2] # Generalities ] yield update_context(self.dummyContext['id'], self.dummyContext) # fill_data/create_submission self.dummySubmission['context_id'] = self.dummyContext['id'] self.dummySubmission['receivers'] = receivers_ids self.dummySubmission['wb_steps'] = yield fill_random_fields(self.dummyContext['id']) self.dummySubmissionNotFinalized = yield create_submission(self.dummySubmission, finalize=False) self.dummySubmission = yield create_submission(self.dummySubmission, finalize=False) yield self.emulate_file_upload(self.dummySubmission['id']) # fill_data/update_submssion submission = yield update_submission(self.dummySubmission['id'], self.dummySubmission, finalize=True) # fill_data/create_whistleblower self.dummyWBTip = yield create_whistleblower_tip(self.dummySubmission) assert self.dummyReceiver_1.has_key('id') assert self.dummyReceiver_2.has_key('id') assert self.dummyContext.has_key('id') assert self.dummySubmission.has_key('id') yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation() commentCreation = { 'content': 'comment!', } messageCreation = { 'content': 'message!', } rtips_desc = yield self.get_rtips() for rtip_desc in rtips_desc: yield rtip.create_comment_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], commentCreation) yield rtip.create_message_receiver(rtip_desc['receiver_id'], rtip_desc['rtip_id'], messageCreation) wbtips_desc = yield self.get_wbtips() for wbtip_desc in wbtips_desc: yield wbtip.create_comment_wb(wbtip_desc['wbtip_id'], commentCreation) for receiver_id in wbtip_desc['wbtip_receivers']: yield wbtip.create_message_wb(wbtip_desc['wbtip_id'], receiver_id, messageCreation) yield delivery_sched.DeliverySchedule().operation() yield notification_sched.NotificationSchedule().operation()