Example #1
0
    def test_put(self):
        """
        Attempt to update a field, changing its type via a put request.
        """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(1, copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])
        field = yield create_field(1, values, 'en')

        updated_sample_field = helpers.get_dummy_field()
        updated_sample_field['instance'] = 'instance'
        context = yield create_context(1, copy.deepcopy(self.dummyContext), 'en')
        updated_sample_field['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])
        updated_sample_field.update(type=u'inputbox', options=[], x=3, y=3)

        handler = self.request(updated_sample_field, role='admin')
        response = yield handler.put(field['id'])

        self.assertEqual(field['id'], response['id'])
        self.assertEqual(3, response['x'])
        self.assertEqual(3, response['y'])

        wrong_sample_field = helpers.get_dummy_field()
        values['instance'] = 'instance'
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])
        wrong_sample_field.update(type='nonexistingfieldtype')
        handler = self.request(wrong_sample_field, role='admin')

        self.assertRaises(errors.InputValidationError, handler.put, field['id'])
Example #2
0
    def test_put(self):
        """
            Attempt to update a field, changing its type via a put request.
            """
        values = self.get_dummy_field()
        values["instance"] = "instance"
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        values["step_id"] = yield get_step_id(context["id"])
        field = yield create_field(values, "en")

        updated_sample_field = self.get_dummy_field()
        updated_sample_field["instance"] = "instance"
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        updated_sample_field["step_id"] = yield get_step_id(context["id"])
        updated_sample_field.update(type="inputbox")
        handler = self.request(updated_sample_field, role="admin")
        yield handler.put(field["id"])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(field["id"], self.responses[0]["id"])
        self.assertEqual(self.responses[0]["type"], "inputbox")

        wrong_sample_field = self.get_dummy_field()
        values["instance"] = "instance"
        values["step_id"] = yield get_step_id(context["id"])
        wrong_sample_field.update(type="nonexistingfieldtype")
        handler = self.request(wrong_sample_field, role="admin")
        self.assertFailure(handler.put(field["id"]), errors.InvalidInputFormat)
Example #3
0
    def test_put(self):
        """
            Attempt to update a field, changing its type via a put request.
            """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        field = yield create_field(values, 'en')

        updated_sample_field = helpers.get_dummy_field()
        updated_sample_field['instance'] = 'instance'
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        updated_sample_field[
            'step_id'] = yield get_id_of_first_step_of_questionnaire(
                context['questionnaire_id'])
        updated_sample_field.update(type='inputbox')
        handler = self.request(updated_sample_field, role='admin')
        response = yield handler.put(field['id'])
        self.assertEqual(field['id'], response['id'])
        self.assertEqual(response['type'], 'inputbox')

        wrong_sample_field = helpers.get_dummy_field()
        values['instance'] = 'instance'
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        wrong_sample_field.update(type='nonexistingfieldtype')
        handler = self.request(wrong_sample_field, role='admin')

        self.assertRaises(errors.InvalidInputFormat, handler.put, field['id'])
Example #4
0
        def test_put(self):
            """
            Attempt to update a field, changing its type via a put request.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            updated_sample_field = self.get_dummy_field()
            updated_sample_field['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            updated_sample_field['step_id'] = yield get_step_id(context['id'])
            updated_sample_field.update(type='inputbox')
            handler = self.request(updated_sample_field, role='admin')
            yield handler.put(field['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(field['id'], self.responses[0]['id'])
            self.assertEqual(self.responses[0]['type'], 'inputbox')

            wrong_sample_field = self.get_dummy_field()
            values['instance'] = 'instance'
            values['step_id'] = yield get_step_id(context['id'])
            wrong_sample_field.update(type='nonexistingfieldtype')
            handler = self.request(wrong_sample_field, role='admin')
            self.assertFailure(handler.put(field['id']), errors.InvalidInputFormat)
Example #5
0
        def test_put(self):
            """
            Attempt to update a field, changing its type via a put request.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            updated_sample_field = self.get_dummy_field()
            updated_sample_field['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            updated_sample_field['step_id'] = yield get_step_id(context['id'])
            updated_sample_field.update(type='inputbox')
            handler = self.request(updated_sample_field, role='admin')
            yield handler.put(field['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(field['id'], self.responses[0]['id'])
            self.assertEqual(self.responses[0]['type'], 'inputbox')

            wrong_sample_field = self.get_dummy_field()
            values['instance'] = 'instance'
            values['step_id'] = yield get_step_id(context['id'])
            wrong_sample_field.update(type='nonexistingfieldtype')
            handler = self.request(wrong_sample_field, role='admin')
            self.assertFailure(handler.put(field['id']), errors.InvalidInputFormat)
Example #6
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdminUser = yield create_admin_user(copy.deepcopy(self.dummyAdminUser), 'en')

        # fill_data/create_custodian
        self.dummyCustodianUser = yield create_custodian_user(copy.deepcopy(self.dummyCustodianUser), 'en')

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver(copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver(copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(copy.deepcopy(self.dummyContext), 'en')

        self.dummyQuestionnaire = yield get_questionnaire(self.dummyContext['questionnaire_id'], 'en')

        self.dummyQuestionnaire['steps'].append(get_dummy_step())
        self.dummyQuestionnaire['steps'][1]['questionnaire_id'] = self.dummyContext['questionnaire_id']
        self.dummyQuestionnaire['steps'][1]['label'] = 'Whistleblower identity'
        self.dummyQuestionnaire['steps'][1]['presentation_order'] = 1
        self.dummyQuestionnaire['steps'][1] = yield create_step(self.dummyQuestionnaire['steps'][1], 'en')

        if self.complex_field_population:
            yield self.add_whistleblower_identity_field_to_step(self.dummyQuestionnaire['steps'][1]['id'])
Example #7
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdmin = yield create_admin(copy.deepcopy(self.dummyAdminUser), 'en')
        self.dummyAdminUser['id'] = self.dummyAdmin['id']

        # fill_data/create_custodian
        self.dummyCustodian = yield create_custodian(copy.deepcopy(self.dummyCustodianUser), 'en')
        self.dummyCustodianUser['id'] = self.dummyCustodian['id']

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver(copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver(copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(copy.deepcopy(self.dummyContext), 'en')

        # fill_data: create field templates
        for idx, field in enumerate(self.dummyFieldTemplates):
            f = yield create_field(copy.deepcopy(field), 'en', 'import')
            self.dummyFieldTemplates[idx]['id'] = f['id']

        for idx, field in enumerate(self.dummyFields):
            change_field_type(field, 'instance')
            field['step_id'] = self.dummyContext['steps'][0]['id']
            f = yield create_field(copy.deepcopy(field), 'en', 'import')
            self.dummyFields[idx]['id'] = f['id']

            self.dummyContext['steps'][0]['children'].append(f)

        yield update_context(self.dummyContext['id'], copy.deepcopy(self.dummyContext), 'en')
Example #8
0
    def test_post_create_from_template(self):
        """
            Attempt to create a new field from template via post request
            """
        values = self.get_dummy_field()
        values['instance'] = 'template'
        field_template = yield create_field(values, 'en')

        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step_id = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])

        values = self.get_dummy_field()
        values['instance'] = 'reference'
        values['template_id'] = field_template['id']
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])

        handler = self.request(values, role='admin')
        yield handler.post()
        self.assertEqual(len(self.responses), 1)

        resp, = self.responses
        self.assertIn('id', resp)
        self.assertNotEqual(resp.get('options'), None)
Example #9
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdmin = yield create_user(1, self.dummyAdmin, 'en')

        # fill_data/create_custodian
        self.dummyCustodian = yield create_user(1, self.dummyCustodian, 'en')

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_user(1, self.dummyReceiver_1, 'en')
        self.dummyReceiver_2 = yield create_user(1, self.dummyReceiver_2, 'en')
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        yield mock_users_keys()

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(1, self.dummyContext, 'en')

        self.dummyQuestionnaire = yield tw(db_get_questionnaire, 1, self.dummyContext['questionnaire_id'], 'en')

        self.dummyQuestionnaire['steps'].append(get_dummy_step())
        self.dummyQuestionnaire['steps'][1]['questionnaire_id'] = self.dummyContext['questionnaire_id']
        self.dummyQuestionnaire['steps'][1]['label'] = 'Whistleblower identity'
        self.dummyQuestionnaire['steps'][1]['order'] = 1
        self.dummyQuestionnaire['steps'][1] = yield tw(db_create_step, 1, self.dummyQuestionnaire['steps'][1], 'en')

        if self.complex_field_population:
            yield self.add_whistleblower_identity_field_to_step(self.dummyQuestionnaire['steps'][1]['id'])

        for i in range(1, self.population_of_tenants):
            name = 'tenant-' + str(i+1)
            t = yield create_tenant({'mode': 'default', 'label': name, 'active': True, 'subdomain': name})
            yield tw(db_wizard, t['id'], '127.0.0.1', self.dummyWizard)
            yield self.set_hostnames(i+1)
Example #10
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdminUser = yield create_user(self.state, 1, copy.deepcopy(self.dummyAdminUser), 'en')

        # fill_data/create_custodian
        self.dummyCustodianUser = yield create_user(self.state, 1, copy.deepcopy(self.dummyCustodianUser), 'en')

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver_user(self.state, 1, copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver_user(self.state, 1, copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(self.state, 1, copy.deepcopy(self.dummyContext), 'en')

        self.dummyQuestionnaire = yield get_questionnaire(1, self.dummyContext['questionnaire_id'], 'en')

        self.dummyQuestionnaire['steps'].append(get_dummy_step())
        self.dummyQuestionnaire['steps'][1]['questionnaire_id'] = self.dummyContext['questionnaire_id']
        self.dummyQuestionnaire['steps'][1]['label'] = 'Whistleblower identity'
        self.dummyQuestionnaire['steps'][1]['presentation_order'] = 1
        self.dummyQuestionnaire['steps'][1] = yield create_step(1, self.dummyQuestionnaire['steps'][1], 'en')

        if self.complex_field_population:
            yield self.add_whistleblower_identity_field_to_step(self.dummyQuestionnaire['steps'][1]['id'])

        for i in range(1, self.population_of_tenants):
            name = 'tenant-' + str(i+1)
            t = yield create_tenant({'label': name, 'active': True, 'subdomain': name})
            yield wizard(self.state, t['id'], self.dummyWizard, True, u'en')
            yield self.set_hostnames(i+1)
Example #11
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdminUser = yield create_admin_user(copy.deepcopy(self.dummyAdminUser), 'en')

        # fill_data/create_custodian
        self.dummyCustodianUser = yield create_custodian_user(copy.deepcopy(self.dummyCustodianUser), 'en')

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver_user(copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver_user(copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(copy.deepcopy(self.dummyContext), 'en')

        self.dummyQuestionnaire = yield get_questionnaire(self.dummyContext['questionnaire_id'], 'en')

        self.dummyQuestionnaire['steps'].append(get_dummy_step())
        self.dummyQuestionnaire['steps'][1]['questionnaire_id'] = self.dummyContext['questionnaire_id']
        self.dummyQuestionnaire['steps'][1]['label'] = 'Whistleblower identity'
        self.dummyQuestionnaire['steps'][1]['presentation_order'] = 1
        self.dummyQuestionnaire['steps'][1] = yield create_step(self.dummyQuestionnaire['steps'][1], 'en')

        if self.complex_field_population:
            yield self.add_whistleblower_identity_field_to_step(self.dummyQuestionnaire['steps'][1]['id'])
Example #12
0
    def fill_data(self):
        yield do_appdata_init()

        # fill_data/create_admin
        self.dummyAdmin = yield create_admin(
            copy.deepcopy(self.dummyAdminUser), 'en')
        self.dummyAdminUser['id'] = self.dummyAdmin['id']

        # fill_data/create_custodian
        self.dummyCustodian = yield create_custodian(
            copy.deepcopy(self.dummyCustodianUser), 'en')
        self.dummyCustodianUser['id'] = self.dummyCustodian['id']
        custodians_ids = [self.dummyCustodian['id']]

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver(
            copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver(
            copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [
            self.dummyReceiver_1['id'], self.dummyReceiver_2['id']
        ]

        # fill_data/create_context
        self.dummyContext['custodians'] = custodians_ids
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(
            copy.deepcopy(self.dummyContext), 'en')

        # fill_data: create field templates
        for idx, field in enumerate(self.dummyFieldTemplates):
            f = yield create_field(copy.deepcopy(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['instance'] = 'instance'
            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(copy.deepcopy(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'],
                             copy.deepcopy(self.dummyContext), 'en')
Example #13
0
    def test_submission_file_delivery_pgp(self):
        new_fields = MockDict().dummyFields
        new_context = MockDict().dummyContext

        new_context['name'] = "Context Name"
        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 = self.get_dummy_receiver("antani1")
        yanr['pgp_key_public'] = unicode(VALID_PGP_KEY1)
        yanr['contexts'] = [new_context_output['id']]
        yanr_output = yield receiver.create_receiver(yanr, 'en')
        self.receiver_assertions(yanr, yanr_output)

        asdr = self.get_dummy_receiver("antani2")
        asdr['pgp_key_public'] = unicode(VALID_PGP_KEY1)
        asdr['contexts'] = [new_context_output['id']]
        asdr_output = yield receiver.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['identity_provided'] = False
        new_subm['answers'] = yield self.fill_random_answers(
            new_context_output['id'])

        token = Token('submission')
        token.proof_of_work = False
        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 self.get_internalfiles_by_wbtip(new_subm_output['id'])

        self.assertTrue(isinstance(ifilist, list))
        self.assertEqual(len(ifilist), 3)

        rfilist = yield self.get_receiverfiles_by_wbtip(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")
Example #14
0
    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 = self.get_dummy_receiver("antani1")
        yanr['pgp_key_public'] = unicode(VALID_PGP_KEY1)
        yanr['contexts'] = [ new_context_output['id']]
        yanr_output = yield receiver.create_receiver(yanr, 'en')
        self.receiver_assertions(yanr, yanr_output)

        asdr = self.get_dummy_receiver("antani2")
        asdr['pgp_key_public'] = unicode(VALID_PGP_KEY1)
        asdr['contexts'] = [ new_context_output['id']]
        asdr_output = yield receiver.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['identity_provided'] = False
        new_subm['answers'] = yield self.fill_random_answers(new_context_output['id'])

        token = Token('submission')
        token.proof_of_work = False
        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 self.get_internalfiles_by_wbtip(new_subm_output['id'])

        self.assertTrue(isinstance(ifilist, list))
        self.assertEqual(len(ifilist), 3)

        rfilist = yield self.get_receiverfiles_by_wbtip(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" )
Example #15
0
 def test_post(self):
     """
         Attempt to create a new step via a post request.
         """
     context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
     step = helpers.get_dummy_step()
     step['questionnaire_id'] = context['questionnaire_id']
     handler = self.request(step, role='admin')
     response = yield handler.post()
     self.assertIn('id', response)
     self.assertNotEqual(response.get('questionnaire_id'), None)
Example #16
0
        def test_get(self):
            """
            Create a new step, then get it back using the received id.
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = helpers.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            step = yield create_step(step, 'en')

            handler = self.request(role='admin')
            response = yield handler.get(step['id'])
            self.assertEqual(step['id'], response['id'])
Example #17
0
    def test_delete(self):
        """
        Create a new field, then attempt to delete it.
        """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(1, copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])
        field = yield create_field(1, values, 'en')

        handler = self.request(role='admin')
        yield handler.delete(field['id'])
Example #18
0
 def test_post(self):
     """
     Attempt to create a new field via a post request.
     """
     values = helpers.get_dummy_field()
     values['instance'] = 'instance'
     context = yield create_context(1, self.dummyContext, 'en')
     values['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])
     handler = self.request(values, role='admin')
     response = yield handler.post()
     self.assertIn('id', response)
     self.assertNotEqual(response.get('options'), None)
Example #19
0
    def test_get(self):
        """
            Create a new step, then get it back using the received id.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        step = helpers.get_dummy_step()
        step["questionnaire_id"] = context["questionnaire_id"]
        step = yield create_step(step, "en")

        handler = self.request(role="admin")
        yield handler.get(step["id"])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(step["id"], self.responses[0]["id"])
Example #20
0
 def test_post(self):
     """
     Attempt to create a new field via a post request.
     """
     values = helpers.get_dummy_field()
     values['instance'] = 'instance'
     context = yield create_context(1, self.dummyContext, 'en')
     values['step_id'] = yield get_id_of_first_step_of_questionnaire(
         context['questionnaire_id'])
     handler = self.request(values, role='admin')
     response = yield handler.post()
     self.assertIn('id', response)
     self.assertNotEqual(response.get('options'), None)
Example #21
0
    def test_delete(self):
        """
        Create a new field, then attempt to delete it.
        """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        field = yield create_field(values, 'en')

        handler = self.request(role='admin')
        yield handler.delete(field['id'])
Example #22
0
    def test_put(self):
        """
        Attempt to update a field, changing its type via a put request.
        """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(self.state, 1,
                                       copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        field = yield create_field(1, values, 'en')

        updated_sample_field = helpers.get_dummy_field()
        updated_sample_field['instance'] = 'instance'
        context = yield create_context(self.state, 1,
                                       copy.deepcopy(self.dummyContext), 'en')
        updated_sample_field[
            'step_id'] = yield get_id_of_first_step_of_questionnaire(
                context['questionnaire_id'])
        updated_sample_field.update(type=u'inputbox', options=[], x=3, y=3)

        handler = self.request(updated_sample_field, role='admin')
        response = yield handler.put(field['id'])

        self.assertEqual(field['id'], response['id'])
        self.assertEqual(3, response['x'])
        self.assertEqual(3, response['y'])
        # assert that it is impossible to change field type
        self.assertEqual(response['type'], 'multichoice')

        wrong_sample_field = helpers.get_dummy_field()
        values['instance'] = 'instance'
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        wrong_sample_field.update(type='nonexistingfieldtype')
        handler = self.request(wrong_sample_field, role='admin')

        self.assertRaises(errors.InputValidationError, handler.put,
                          field['id'])
Example #23
0
        def test_delete(self):
            """
            Create a new step, then attempt to delete it.
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = helpers.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            step = yield create_step(step, 'en')

            handler = self.request(role='admin')
            yield handler.delete(step['id'])
            # second deletion operation should fail
            yield self.assertFailure(handler.delete(step['id']), errors.StepIdNotFound)
Example #24
0
    def test_get(self):
        """
            Create a new step, then get it back using the received id.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step = copy.deepcopy(self.dummySteps[0])
        step['context_id'] = context['id']
        step = yield create_step(step, 'en')

        handler = self.request(role='admin')
        yield handler.get(step['id'])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(step['id'], self.responses[0]['id'])
Example #25
0
        def test_get(self):
            """
            Create a new step, then get it back using the received id.
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = self.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            step = yield create_step(step, 'en')

            handler = self.request(role='admin')
            yield handler.get(step['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(step['id'], self.responses[0]['id'])
Example #26
0
    def test_post(self):
        """
            Attempt to create a new step via a post request.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        step = helpers.get_dummy_step()
        step["questionnaire_id"] = context["questionnaire_id"]
        handler = self.request(step, role="admin")
        yield handler.post()
        self.assertEqual(len(self.responses), 1)

        resp = self.responses[0]
        self.assertIn("id", resp)
        self.assertNotEqual(resp.get("questionnaire_id"), None)
Example #27
0
        def test_get(self):
            """
            Create a new field, then get it back using the received id.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            handler = self.request(role='admin')
            yield handler.get(field['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(field['id'], self.responses[0]['id'])
Example #28
0
    def test_delete(self):
        """
            Create a new step, then attempt to delete it.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step = copy.deepcopy(self.dummySteps[0])
        step['context_id'] = context['id']
        step = yield create_step(step, 'en')

        handler = self.request(role='admin')
        yield handler.delete(step['id'])
        self.assertEqual(handler.get_status(), 200)
        # second deletion operation should fail
        self.assertFailure(handler.delete(step['id']), errors.StepIdNotFound)
Example #29
0
    def test_post(self):
        """
            Attempt to create a new step via a post request.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step = copy.deepcopy(self.dummySteps[0])
        step['context_id'] = context['id']
        handler = self.request(step, role='admin')
        yield handler.post()
        self.assertEqual(len(self.responses), 1)

        resp, = self.responses
        self.assertIn('id', resp)
        self.assertNotEqual(resp.get('context_id'), None)
Example #30
0
    def test_delete(self):
        """
            Create a new step, then attempt to delete it.
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        step = helpers.get_dummy_step()
        step["questionnaire_id"] = context["questionnaire_id"]
        step = yield create_step(step, "en")

        handler = self.request(role="admin")
        yield handler.delete(step["id"])
        self.assertEqual(handler.get_status(), 200)
        # second deletion operation should fail
        yield self.assertFailure(handler.delete(step["id"]), errors.StepIdNotFound)
Example #31
0
    def fill_data(self):
        yield do_appdata_init()

        # fill_data/create_admin
        self.dummyAdmin = yield create_admin(copy.deepcopy(self.dummyAdminUser), 'en')
        self.dummyAdminUser['id'] = self.dummyAdmin['id']

        # fill_data/create_custodian
        self.dummyCustodian = yield create_custodian(copy.deepcopy(self.dummyCustodianUser), 'en')
        self.dummyCustodianUser['id'] = self.dummyCustodian['id']
        custodians_ids = [self.dummyCustodian['id']]

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_receiver(copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_receiver(copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        # fill_data/create_context
        self.dummyContext['custodians'] = custodians_ids
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(copy.deepcopy(self.dummyContext), 'en')

        # fill_data: create field templates
        for idx, field in enumerate(self.dummyFieldTemplates):
            f = yield create_field(copy.deepcopy(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['instance'] = 'instance'
            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(copy.deepcopy(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'], copy.deepcopy(self.dummyContext), 'en')
Example #32
0
    def test_get(self):
        """
            Create a new field, then get it back using the received id.
            """
        values = self.get_dummy_field()
        values["instance"] = "instance"
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        values["step_id"] = yield get_step_id(context["id"])
        field = yield create_field(values, "en")

        handler = self.request(role="admin")
        yield handler.get(field["id"])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(field["id"], self.responses[0]["id"])
Example #33
0
        def test_get(self):
            """
            Create a new field, then get it back using the received id.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            handler = self.request(role='admin')
            yield handler.get(field['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(field['id'], self.responses[0]['id'])
Example #34
0
    def test_get(self):
        """
            Create a new field, then get it back using the received id.
            """
        values = helpers.get_dummy_field()
        values['instance'] = 'instance'
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(
            context['questionnaire_id'])
        field = yield create_field(values, 'en')

        handler = self.request(role='admin')
        response = yield handler.get(field['id'])
        self.assertEqual(field['id'], response['id'])
Example #35
0
        def test_post(self):
            """
            Attempt to create a new step via a post request.
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = self.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            handler = self.request(step, role='admin')
            yield handler.post()
            self.assertEqual(len(self.responses), 1)

            resp, = self.responses
            self.assertIn('id', resp)
            self.assertNotEqual(resp.get('questionnaire_id'), None)
Example #36
0
        def test_delete(self):
            """
            Create a new step, then attempt to delete it.
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = self.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            step = yield create_step(step, 'en')

            handler = self.request(role='admin')
            yield handler.delete(step['id'])
            self.assertEqual(handler.get_status(), 200)
            # second deletion operation should fail
            self.assertFailure(handler.delete(step['id']), errors.StepIdNotFound)
Example #37
0
        def test_delete(self):
            """
            Create a new field, then attempt to delete it.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            handler = self.request(role='admin')
            yield handler.delete(field['id'])
            self.assertEqual(handler.get_status(), 200)
            # second deletion operation should fail
            self.assertFailure(handler.delete(field['id']), errors.FieldIdNotFound)
Example #38
0
    def test_put(self):
        """
            Attempt to update a step, changing it presentation order
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step = helpers.get_dummy_step()
        step['questionnaire_id'] = context['questionnaire_id']
        step = yield create_step(step, 'en')

        step['presentation_order'] = 666

        handler = self.request(step, role='admin')
        response = yield handler.put(step['id'])
        self.assertEqual(step['id'], response['id'])
        self.assertEqual(response['presentation_order'], 666)
Example #39
0
        def test_post(self):
            """
            Attempt to create a new field via a post request.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(self.dummyContext, 'en')
            values['step_id'] = yield get_step_id(context['id'])
            handler = self.request(values, role='admin')
            yield handler.post()
            self.assertEqual(len(self.responses), 1)

            resp, = self.responses
            self.assertIn('id', resp)
            self.assertNotEqual(resp.get('options'), None)
Example #40
0
    def test_post(self):
        """
            Attempt to create a new field via a post request.
            """
        values = self.get_dummy_field()
        values["instance"] = "instance"
        context = yield create_context(self.dummyContext, "en")
        values["step_id"] = yield get_step_id(context["id"])
        handler = self.request(values, role="admin")
        yield handler.post()
        self.assertEqual(len(self.responses), 1)

        resp, = self.responses
        self.assertIn("id", resp)
        self.assertNotEqual(resp.get("options"), None)
Example #41
0
        def test_post(self):
            """
            Attempt to create a new field via a post request.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(self.dummyContext, 'en')
            values['step_id'] = yield get_step_id(context['id'])
            handler = self.request(values, role='admin')
            yield handler.post()
            self.assertEqual(len(self.responses), 1)

            resp, = self.responses
            self.assertIn('id', resp)
            self.assertNotEqual(resp.get('options'), None)
Example #42
0
        def test_delete(self):
            """
            Create a new field, then attempt to delete it.
            """
            values = self.get_dummy_field()
            values['instance'] = 'instance'
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            values['step_id'] = yield get_step_id(context['id'])
            field = yield create_field(values, 'en')

            handler = self.request(role='admin')
            yield handler.delete(field['id'])
            self.assertEqual(handler.get_status(), 200)
            # second deletion operation should fail
            self.assertFailure(handler.delete(field['id']), errors.FieldIdNotFound)
Example #43
0
    def test_put(self):
        """
            Attempt to update a step, changing it presentation order
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
        step = copy.deepcopy(self.dummySteps[0])
        step['context_id'] = context['id']
        step = yield create_step(step, 'en')

        step['presentation_order'] = 666

        handler = self.request(step, role='admin')
        yield handler.put(step['id'])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(step['id'], self.responses[0]['id'])
        self.assertEqual(self.responses[0]['presentation_order'], 666)
Example #44
0
    def test_put(self):
        """
            Attempt to update a step, changing it presentation order
            """
        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        step = helpers.get_dummy_step()
        step["questionnaire_id"] = context["questionnaire_id"]
        step = yield create_step(step, "en")

        step["presentation_order"] = 666

        handler = self.request(step, role="admin")
        yield handler.put(step["id"])
        self.assertEqual(len(self.responses), 1)
        self.assertEqual(step["id"], self.responses[0]["id"])
        self.assertEqual(self.responses[0]["presentation_order"], 666)
Example #45
0
        def test_put(self):
            """
            Attempt to update a step, changing it presentation order
            """
            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step = self.get_dummy_step()
            step['questionnaire_id'] = context['questionnaire_id']
            step = yield create_step(step, 'en')

            step['presentation_order'] = 666

            handler = self.request(step, role='admin')
            yield handler.put(step['id'])
            self.assertEqual(len(self.responses), 1)
            self.assertEqual(step['id'], self.responses[0]['id'])
            self.assertEqual(self.responses[0]['presentation_order'], 666)
Example #46
0
    def test_post_create_from_template(self):
        """
        Attempt to create a new field from template via post request
        """
        values = helpers.get_dummy_field()
        values['instance'] = 'template'
        field_template = yield create_field(1, values, 'en')

        context = yield create_context(1, copy.deepcopy(self.dummyContext), 'en')

        values = helpers.get_dummy_field()
        values['instance'] = 'reference'
        values['template_id'] = field_template['id']
        values['step_id'] = yield get_id_of_first_step_of_questionnaire(context['questionnaire_id'])

        handler = self.request(values, role='admin')
        response = yield handler.post()
        self.assertIn('id', response)
        self.assertNotEqual(response.get('options'), None)
Example #47
0
    def fill_data(self):
        # fill_data/create_admin
        self.dummyAdminUser = yield create_user(1, copy.deepcopy(self.dummyAdminUser), 'en')

        # fill_data/create_custodian
        self.dummyCustodianUser = yield create_user(1, copy.deepcopy(self.dummyCustodianUser), 'en')

        # fill_data/create_receiver
        self.dummyReceiver_1 = yield create_user(1, copy.deepcopy(self.dummyReceiver_1), 'en')
        self.dummyReceiverUser_1['id'] = self.dummyReceiver_1['id']
        self.dummyReceiver_2 = yield create_user(1, copy.deepcopy(self.dummyReceiver_2), 'en')
        self.dummyReceiverUser_2['id'] = self.dummyReceiver_2['id']
        receivers_ids = [self.dummyReceiver_1['id'], self.dummyReceiver_2['id']]

        yield mock_users_keys()

        # fill_data/create_context
        self.dummyContext['receivers'] = receivers_ids
        self.dummyContext = yield create_context(1, copy.deepcopy(self.dummyContext), 'en')

        self.dummyQuestionnaire = yield get_questionnaire(1, self.dummyContext['questionnaire_id'], 'en')

        self.dummyQuestionnaire['steps'].append(get_dummy_step())
        self.dummyQuestionnaire['steps'][1]['questionnaire_id'] = self.dummyContext['questionnaire_id']
        self.dummyQuestionnaire['steps'][1]['label'] = 'Whistleblower identity'
        self.dummyQuestionnaire['steps'][1]['presentation_order'] = 1
        self.dummyQuestionnaire['steps'][1] = yield create_step(1, self.dummyQuestionnaire['steps'][1], 'en')

        if self.complex_field_population:
            yield self.add_whistleblower_identity_field_to_step(self.dummyQuestionnaire['steps'][1]['id'])

        for i in range(1, self.population_of_tenants):
            name = 'tenant-' + str(i+1)
            t = yield create_tenant({'mode': 'default', 'label': name, 'active': True, 'subdomain': name})
            yield tw(db_wizard, t['id'], self.dummyWizard, True, u'en')
            yield self.set_hostnames(i+1)

        yield associate_users_of_first_tenant_to_second_tenant()
Example #48
0
    def test_post_create_from_template(self):
        """
            Attempt to create a new field from template via post request
            """
        values = self.get_dummy_field()
        values["instance"] = "template"
        field_template = yield create_field(values, "en")

        context = yield create_context(copy.deepcopy(self.dummyContext), "en")
        step_id = yield get_step_id(context["id"])

        values = self.get_dummy_field()
        values["instance"] = "reference"
        values["template_id"] = field_template["id"]
        values["step_id"] = yield get_step_id(context["id"])

        handler = self.request(values, role="admin")
        yield handler.post()
        self.assertEqual(len(self.responses), 1)

        resp, = self.responses
        self.assertIn("id", resp)
        self.assertNotEqual(resp.get("options"), None)
Example #49
0
        def test_post_create_from_template(self):
            """
            Attempt to create a new field from template via post request
            """
            values = self.get_dummy_field()
            values['instance'] = 'template'
            field_template = yield create_field(values, 'en')

            context = yield create_context(copy.deepcopy(self.dummyContext), 'en')
            step_id = yield get_step_id(context['id'])

            values = self.get_dummy_field()
            values['instance'] = 'reference'
            values['template_id'] = field_template['id']
            values['step_id'] = yield get_step_id(context['id'])

            handler = self.request(values, role='admin')
            yield handler.post()
            self.assertEqual(len(self.responses), 1)

            resp, = self.responses
            self.assertIn('id', resp)
            self.assertNotEqual(resp.get('options'), None)