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)
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)
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'))
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)
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, ))
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)
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)
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) )
def get_targets(): return AddonDataverseNodeSettings.find( Q('user_settings', 'ne', None) & Q('study_hdl', 'ne', None) )