示例#1
0
    def test_user_generate_apikey_saml2_user(self):
        saml_user = factories.InternalUser()

        context = {'user': saml_user['name']}
        data_dict = {'id': saml_user['id']}
        result = toolkit.get_action('user_generate_apikey')(context, data_dict)
        assert type(result) == dict
        assert saml_user['apikey'] != result['apikey']
示例#2
0
    def test_user_update_change_apikey_saml2_user(self):
        saml_user = factories.InternalUser()

        context = {'user': saml_user['name']}
        data_dict = saml_user.copy()
        data_dict['apikey'] = 'f00b42'
        data_dict['email'] = '*****@*****.**'
        result = toolkit.get_action('user_update')(context, data_dict)
        assert result['email'] != '*****@*****.**'
示例#3
0
    def test_user_update_kobo_token_saml2_user(self, kobo_surveys):
        kobo_surveys.return_value = []
        saml_user = factories.InternalUser()

        context = {'user': saml_user['name']}
        # this should not raise an exception
        saml_user['plugin_extras'] = {'unhcr': {'kobo_token': 'abc123'}}
        toolkit.get_action('user_update')(context, saml_user)
        userobj = model.User.get(saml_user['id'])
        assert userobj.plugin_extras['unhcr']['kobo_token'] == 'abc123'
示例#4
0
    def setup(self, get_total_submissions, create_kobo_resources):
        get_total_submissions.return_value = 5  # any, > 0
        self.kobo_user = factories.InternalKoBoUser()
        self.internal_user = factories.InternalUser()
        self.data_container = factories.DataContainer(users=[
            {
                'name': self.kobo_user['name'],
                'capacity': 'editor'
            },
            {
                'name': self.internal_user['name'],
                'capacity': 'member'
            },
        ])
        self.kobo_test_asset_id = 'test_kobo_id_1234'
        self.kobo_dataset = factories.Dataset(
            name='kobo-dataset',
            title='KoBo Dataset',
            owner_org=self.data_container['name'],
            data_collection_technique='f2f',
            sampling_procedure='nonprobability',
            operational_purpose_of_data='cartography',
            user=self.kobo_user,
            kobo_asset_id=self.kobo_test_asset_id,
        )

        base_resource = dict(name='kobo-resource',
                             package_id='kobo-dataset',
                             url_type='upload',
                             visibility='restricted',
                             upload=mocks.FakeFileStorage(),
                             url='original-file.csv',
                             format='csv',
                             kobo_type='data',
                             kobo_details={
                                 'kobo_export_id':
                                 'test_export_id',
                                 'kobo_asset_id':
                                 self.kobo_test_asset_id,
                                 'kobo_download_status':
                                 'pending',
                                 'kobo_download_attempts':
                                 1,
                                 'kobo_submission_count':
                                 3,
                                 'kobo_last_updated':
                                 datetime.datetime.utcnow().isoformat(),
                             })
        self.kobo_resource = factories.Resource(**base_resource)

        base_resource['kobo_details']['kobo_download_attempts'] = 5
        base_resource['upload'] = mocks.FakeFileStorage()

        self.kobo_resource_last_attempt = factories.Resource(**base_resource)
示例#5
0
    def setup(self):
        # Users
        self.internal_user = factories.InternalUser()
        self.internal_editor_user = factories.InternalUser()
        self.kobo_user = factories.InternalKoBoUser()
        self.internal_admin_user = factories.InternalUser()
        self.external_user = factories.ExternalUser()

        self.data_container = factories.DataContainer(users=[
            {
                'name': self.internal_admin_user['name'],
                'capacity': 'admin'
            },
            {
                'name': self.internal_editor_user['name'],
                'capacity': 'editor'
            },
            {
                'name': self.kobo_user['name'],
                'capacity': 'editor'
            },
        ])
示例#6
0
    def test_fail_user_update_saml2_user(self):
        saml_user = factories.InternalUser()

        context = {'user': saml_user['name']}
        with pytest.raises(toolkit.ValidationError):
            toolkit.get_action('user_update')(context, saml_user)