Example #1
0
 def test_defaults(self):
     node_settings = AddonDataverseNodeSettings(user_settings=self.user_settings)
     node_settings.save()
     assert_is_none(node_settings.dataverse)
     assert_is_none(node_settings.dataverse_alias)
     assert_is_none(node_settings.dataset)
     assert_is_none(node_settings.dataset_doi)
Example #2
0
 def test_defaults(self):
     node_settings = AddonDataverseNodeSettings(user_settings=self.user_settings)
     node_settings.save()
     assert_is_none(node_settings.dataverse)
     assert_is_none(node_settings.dataverse_alias)
     assert_is_none(node_settings.dataset)
     assert_is_none(node_settings.dataset_doi)
Example #3
0
    def test_connect_from_settings_or_401(self, mock_connect):
        node_settings = AddonDataverseNodeSettings()
        node_settings.external_account = create_external_account(
            self.host, self.token,
        )

        connection = connect_from_settings_or_401(node_settings)
        assert_true(connection)
        mock_connect.assert_called_once_with(self.host, self.token)
Example #4
0
    def test_connect_from_settings_or_401(self, mock_connect):
        node_settings = AddonDataverseNodeSettings()
        node_settings.external_account = create_external_account(
            self.host, self.token,
        )

        connection = connect_from_settings_or_401(node_settings)
        assert_true(connection)
        mock_connect.assert_called_once_with(self.host, self.token)
Example #5
0
 def test_fields(self):
     node_settings = AddonDataverseNodeSettings(user_settings=self.user_settings)
     node_settings.save()
     assert_true(node_settings.user_settings)
     assert_equal(node_settings.user_settings.owner, self.user)
     assert_true(hasattr(node_settings, 'dataverse'))
     assert_true(hasattr(node_settings, 'dataverse_alias'))
     assert_true(hasattr(node_settings, 'dataset'))
     assert_true(hasattr(node_settings, 'dataset_doi'))
Example #6
0
 def test_fields(self):
     node_settings = AddonDataverseNodeSettings(user_settings=self.user_settings)
     node_settings.save()
     assert_true(node_settings.user_settings)
     assert_equal(node_settings.user_settings.owner, self.user)
     assert_true(hasattr(node_settings, 'dataverse'))
     assert_true(hasattr(node_settings, 'dataverse_alias'))
     assert_true(hasattr(node_settings, 'dataset'))
     assert_true(hasattr(node_settings, 'dataset_doi'))
Example #7
0
    def test_connect_from_settings_or_401_forbidden(self, mock_connection):
        mock_connection.side_effect = UnauthorizedError()
        node_settings = AddonDataverseNodeSettings()
        node_settings.external_account = create_external_account(
            self.host, self.token,
        )

        with assert_raises(HTTPError) as e:
            connect_from_settings_or_401(node_settings)

        mock_connection.assert_called_once_with(self.host, self.token)
        assert_equal(e.exception.code, 401)
Example #8
0
    def test_connect_from_settings_or_401_forbidden(self, mock_connection):
        mock_connection.side_effect = UnauthorizedError()
        node_settings = AddonDataverseNodeSettings()
        node_settings.external_account = create_external_account(
            self.host, self.token,
        )

        with assert_raises(HTTPError) as e:
            connect_from_settings_or_401(node_settings)

        mock_connection.assert_called_once_with(self.host, self.token)
        assert_equal(e.exception.code, 401)
 def test_get_targets(self):
     AddonDataverseNodeSettings.remove()
     addons = [
         AddonDataverseNodeSettings(),
         AddonDataverseNodeSettings(study_hdl='foo'),
         AddonDataverseNodeSettings(user_settings=self.user_addon),
         AddonDataverseNodeSettings(study_hdl='foo', user_settings=self.user_addon),
     ]
     for addon in addons:
         addon.save()
     targets = get_targets()
     assert_equal(targets.count(), 1)
     assert_equal(targets[0]._id, addons[-1]._id)
Example #10
0
def do_migration():
    for dvs in AddonDataverseNodeSettings.find():
        if dvs.foreign_user_settings is None:
            continue
        logger.info('Migrating user_settings for dataverse {}'.format(dvs._id))
        dvs.user_settings = dvs.foreign_user_settings
        dvs.save()
def do_migration():
    for dvs in AddonDataverseNodeSettings.find():
        if dvs.foreign_user_settings is None:
            continue
        logger.info('Migrating user_settings for dataverse {}'.format(dvs._id))
        dvs.user_settings = dvs.foreign_user_settings
        dvs.save()
def do_migration():
    for node_addon in AddonDataverseNodeSettings.find(Q('foreign_user_settings', 'ne', None)):
        user_addon = node_addon.foreign_user_settings
        if not user_addon.external_accounts:
            logger.warning('User {0} has no dataverse external account'.format(user_addon.owner._id))
            continue
        account = user_addon.external_accounts[0]
        node_addon.set_auth(account, user_addon.owner)
        logger.info('Added external account {0} to node {1}'.format(
            account._id, node_addon.owner._id,
        ))
def do_migration():
    for node_addon in AddonDataverseNodeSettings.find(
            Q('foreign_user_settings', 'ne', None)):
        user_addon = node_addon.foreign_user_settings
        if not user_addon.external_accounts:
            logger.warning('User {0} has no dataverse external account'.format(
                user_addon.owner._id))
            continue
        account = user_addon.external_accounts[0]
        node_addon.set_auth(account, user_addon.owner)
        logger.info('Added external account {0} to node {1}'.format(
            account._id,
            node_addon.owner._id,
        ))
Example #14
0
    def test_has_auth(self):
        node_settings = AddonDataverseNodeSettings()
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings = AddonDataverseUserSettings()
        user_settings.save()
        node_settings.user_settings = user_settings
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings.api_token = 'foo-bar'
        user_settings.save()
        assert_true(node_settings.has_auth)
Example #15
0
    def test_has_auth(self):
        node_settings = AddonDataverseNodeSettings()
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings = AddonDataverseUserSettings()
        user_settings.save()
        node_settings.user_settings = user_settings
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings.dataverse_username = '******'
        user_settings.dataverse_password = '******'
        user_settings.save()
        assert_true(node_settings.has_auth)
Example #16
0
 def test_get_targets(self):
     AddonDataverseNodeSettings.remove()
     addons = [
         AddonDataverseNodeSettings(),
         AddonDataverseNodeSettings(study_hdl='foo'),
         AddonDataverseNodeSettings(user_settings=self.user_addon),
         AddonDataverseNodeSettings(study_hdl='foo',
                                    user_settings=self.user_addon),
     ]
     for addon in addons:
         addon.save()
     targets = get_targets()
     assert_equal(targets.count(), 1)
     assert_equal(targets[0]._id, addons[-1]._id)
Example #17
0
    def test_has_auth(self):
        node_settings = AddonDataverseNodeSettings()
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings = AddonDataverseUserSettings()
        user_settings.save()
        node_settings.user_settings = user_settings
        node_settings.save()
        assert_false(node_settings.has_auth)

        user_settings.dataverse_username = '******'
        user_settings.dataverse_password = '******'
        user_settings.save()
        assert_true(node_settings.has_auth)
Example #18
0
def get_targets():
    return AddonDataverseNodeSettings.find(
        Q('user_settings', 'ne', None) & Q('study_hdl', 'ne', None))
def get_authorized_node_settings(user_addon):
    """Returns node settings authorized by a given user settings object"""
    return AddonDataverseNodeSettings.find(Q('user_settings', 'eq',
                                             user_addon))
def get_authorized_node_settings(user_addon):
    """Returns node settings authorized by a given user settings object"""
    return AddonDataverseNodeSettings.find(
        Q('user_settings', 'eq', user_addon)
    )
Example #21
0
def get_targets():
    return AddonDataverseNodeSettings.find(
        Q('user_settings', 'ne', None) &
        Q('study_hdl', 'ne', None)
    )