def _fill_event(self, event_type, trigger, trigger_id): """ Here I'm testing only encrypted_tip because trigger a bigger amount of %KeyWords% """ self.assertEqual(event_type, u'encrypted_tip') self.assertEqual(trigger, 'Tip') if event_type == u'encrypted_tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver( self.createdReceiver['id']) context_dict = yield admin.get_context(self.createdContext['id']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.admin_serialize_node() tip_dict = yield self.get_a_fucking_random_submission() self.event = Event(type=u'encrypted_tip', trigger='Tip', notification_settings=notif_dict, node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, plugin=None, trigger_info=tip_dict, trigger_parent=None)
def test_bruteforce_login_protection(self): handler = self.request({ 'username': self.dummyReceiver_1['id'], 'password': '******', 'role': 'receiver' }) sleep_list = [] def fake_deferred_sleep(seconds): sleep_list.append(seconds) utility.deferred_sleep = fake_deferred_sleep failed_login = 7 for i in xrange(0, failed_login): yield self.assertFailure(handler.post(), errors.InvalidAuthentication) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id'], 'en') self.assertEqual(GLSetting.failed_login_attempts, failed_login) # validate incremental delay self.assertTrue(len(sleep_list), failed_login) for i in xrange(1, len(sleep_list)): self.assertTrue(i <= sleep_list[i])
def test_019_bruteforce_login_protection(self): handler = self.request({ 'username': self.dummyReceiverUser_1['username'], 'password': '******', 'role': 'receiver' }) sleep_list = [] def fake_deferred_sleep(seconds): sleep_list.append(seconds) utility.deferred_sleep = fake_deferred_sleep failed_login = 7 for i in xrange(0, failed_login): try: failure = yield handler.post() print type(failure) except errors.InvalidAuthRequest: continue except Exception as excep: print excep, "Has been raised wrongly" self.assertTrue(False) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id']) self.assertEqual(GLSetting.failed_login_attempts, failed_login) # validate incremental delay self.assertTrue(len(sleep_list), failed_login) for i in xrange(1, len(sleep_list)): self.assertTrue(i <= sleep_list[i])
def _fill_event(self, event_type, trigger, trigger_id): """ Here I'm testing only encrypted_tip because trigger a bigger amount of %KeyWords% """ self.assertEqual(event_type, u'encrypted_tip') self.assertEqual(trigger, 'Tip') if event_type == u'encrypted_tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver(self.createdReceiver['id']) context_dict = yield admin.get_context(self.createdContext['id']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.admin_serialize_node() tip_dict = yield self.get_a_fucking_random_submission() self.event = Event( type = u'encrypted_tip', trigger = 'Tip', notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, plugin = None, trigger_info = tip_dict, trigger_parent = None )
def _fill_event_dict(self, event_type, event_trigger): """ A notification is based on the Node, Context and Receiver values, that has to be taken from the database. """ receiver_dict = yield admin.get_receiver(self.createdReceiver['id']) context_dict = yield admin.get_context(self.createdContext['id']) steps_dict = yield admin.get_context_steps(self.createdContext['id']) notif_dict = yield admin.notification.get_notification() yield admin.import_memory_variables() node_dict = yield admin.admin_serialize_node() # is a mock 'trigger_info' and 'trigger_parent' at the moment self.tip['name'] = ' foo ' self.tip['size'] = ' 123 ' self.tip['content_type'] = ' application/javascript ' self.tip['creation_date'] = context_dict['creation_date'] self.tip['type'] = ' sorry maker ' # this is requested in the file cases self.event = Event(type = event_type, trigger = event_trigger, notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, steps_info = steps_dict, plugin = None, trigger_info = self.tip, trigger_parent = self.tip )
def _fill_event(self, type, trigger, trigger_id): if type == u'tip' and trigger == 'Tip': receiver_dict = yield admin.get_receiver(self.createdReceiver['receiver_gus']) context_dict = yield admin.get_context(self.createdContext['context_gus']) notif_dict = yield admin.get_notification() yield admin.import_memory_variables() node_dict = yield admin.get_node() self.event = Event( type = u'tip', trigger = 'Tip', notification_settings = notif_dict, node_info = node_dict, receiver_info = receiver_dict, context_info = context_dict, plugin = None, trigger_info = { 'id': trigger_id, 'creation_date': pretty_date_time(datetime_now()) } ) elif type == u'comment' and trigger == 'Comment': raise AssertionError("Not yet managed Mock comments") elif type == u'file' and trigger == 'File': raise AssertionError("Not yet managed Mock files") else: raise AssertionError("type and trigger maybe refactored, but you're using it bad")
def test_bruteforce_login_protection(self): handler = self.request({ 'username': self.dummyReceiver_1['id'], 'password': '******', 'role': 'receiver' }) sleep_list = [] def fake_deferred_sleep(seconds): sleep_list.append(seconds) utility.deferred_sleep = fake_deferred_sleep failed_login = 7 for i in xrange(0, failed_login): yield self.assertFailure(handler.post(), errors.InvalidAuthentication) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id'], 'en') self.assertEqual(GLSettings.failed_login_attempts, failed_login) # validate incremental delay self.assertTrue(len(sleep_list), failed_login) for i in xrange(1, len(sleep_list)): self.assertTrue(i <= sleep_list[i])
def test_failed_login_counter(self): handler = self.request({ 'username': self.dummyReceiver_1['id'], 'password': '******', 'role': 'receiver' }) failed_login = 5 for i in xrange(0, failed_login): self.assertFailure(handler.post(), errors.InvalidAuthentication) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id'], 'en') self.assertEqual(GLSetting.failed_login_attempts, failed_login)
def test_failed_login_counter(self): handler = self.request({ 'username': self.dummyReceiver_1['id'], 'password': '******', 'role': 'receiver' }) failed_login = 5 for i in xrange(0, failed_login): yield self.assertFailure(handler.post(), errors.InvalidAuthentication) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id'], 'en') self.assertEqual(GLSettings.failed_login_attempts, failed_login)
def test_keywords_conversion(self): yield self.perform_full_submission_actions() self.receiver_dict = yield admin.get_receiver( self.dummyReceiver_1['id'], 'en') self.context_dict = yield admin.get_context(self.dummyContext['id'], 'en') self.notif_dict = yield admin.notification.get_notification('en') self.node_dict = yield admin.admin_serialize_node('en') self.rtip_dict = self.dummyRTips[0]['itip'] self.templates = {} for t, keywords_list in templates_desc.iteritems(): self.templates[t] = "" for kwl in keywords_list: for keyword in kwl: self.templates[t] += " " + keyword + " / " for template_name, template in self.templates.iteritems(): # look for appropriate event_type, event_trigger event_type = u'' event_trigger = '' for e_t, e_tri in supported_event_types.iteritems(): if template_name.startswith(e_t): event_type = e_t event_trigger = e_tri break if not event_type: # we've nothing to do not! continue self._fill_event_dict(event_type, event_trigger) # with the event, we can finally call the template filler gentext = Templating().format_template(template, self.event) if template_name != 'ping_mail_template' and template_name != 'ping_mail_title': self.assertSubstring(self.context_dict['name'], gentext) self.assertSubstring(self.node_dict['public_site'], gentext) self.assertSubstring(self.node_dict['hidden_service'], gentext)
def test_018_failed_login_counter(self): handler = self.request({ 'username': self.dummyReceiverUser_1['username'], 'password': '******', 'role': 'receiver' }) failed_login = 5 for i in xrange(0, failed_login): try: failure = yield handler.post() except errors.InvalidAuthRequest: continue except Exception as excep: print excep, "Has been raised wrongly" self.assertTrue(False) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id']) self.assertEqual(GLSetting.failed_login_attempts, failed_login)
def test_keywords_conversion(self): yield self.perform_full_submission_actions() self.receiver_dict = yield admin.get_receiver(self.dummyReceiver_1['id'], 'en') self.context_dict = yield admin.get_context(self.dummyContext['id'], 'en') self.steps_dict = yield admin.get_context_steps(self.dummyContext['id'], 'en') self.notif_dict = yield admin.notification.get_notification('en') self.node_dict = yield admin.admin_serialize_node('en') self.rtip_dict = self.dummyRTips[0]['itip'] self.templates = {} for t, keywords_list in templates_desc.iteritems(): self.templates[t] = "" for kwl in keywords_list: for keyword in kwl: self.templates[t] += " " + keyword + " / " for template_name, template in self.templates.iteritems(): # look for appropriate event_type, event_trigger event_type = u'' event_trigger = '' for e_t, e_tri in supported_event_types.iteritems(): if template_name.startswith(e_t): event_type = e_t event_trigger = e_tri break if not event_type: # we've nothing to do not! continue self._fill_event_dict(event_type, event_trigger) # with the event, we can finally call the template filler gentext = Templating().format_template(template, self.event) if template_name != 'ping_mail_template' and template_name != 'ping_mail_title': self.assertSubstring(self.context_dict['name'], gentext) self.assertSubstring(self.node_dict['public_site'], gentext) self.assertSubstring(self.node_dict['hidden_service'], gentext)
def test_018_failed_login_counter(self): handler = self.request({ 'username': self.dummyReceiverUser_1['username'], 'password': '******', 'role': 'receiver' }) failed_login = 5 for i in xrange(0, failed_login): try: failure = yield handler.post() print type(failure) except errors.InvalidAuthRequest: continue except Exception as excep: print excep, "Has been raised wrongly" self.assertTrue(False) receiver_status = yield admin.get_receiver(self.dummyReceiver_1['id']) self.assertEqual(GLSetting.failed_login_attempts, failed_login)
def _fill_event_dict(self, event_type, event_trigger): """ A notification is based on the Node, Context and Receiver values, that has to be taken from the database. """ receiver_dict = yield admin.get_receiver(self.createdReceiver['id'], 'en') context_dict = yield admin.get_context(self.createdContext['id'], 'en') steps_dict = yield admin.get_context_steps(self.createdContext['id'], 'en') notif_dict = yield admin.notification.get_notification('en') node_dict = yield admin.admin_serialize_node('en') self.subevent = {} # this is requested in the file cases if event_type == 'ping_mail': self.subevent = {'counter': 42} elif event_type == 'admin_pgp_expiration_alert': self.subevent = {'expired_or_expiring': [receiver_dict]} else: self.subevent['name'] = ' foo ' self.subevent['size'] = ' 123 ' self.subevent['content_type'] = ' application/javascript ' self.subevent['creation_date'] = context_dict['creation_date'] self.subevent['type'] = ' sorry maker ' self.event = Event(type=event_type, trigger=event_trigger, node_info=node_dict, receiver_info=receiver_dict, context_info=context_dict, steps_info=steps_dict, tip_info=self.tip, subevent_info=self.subevent, do_mail=False)