def test_get_targets(self): now = datetime.datetime.utcnow() records = [ BoxAccountFactory(expires_at=now + datetime.timedelta(days=4)), BoxAccountFactory(expires_at=now + datetime.timedelta(days=2)), GoogleDriveAccountFactory(expires_at=now + datetime.timedelta(days=4)), GoogleDriveAccountFactory(expires_at=now + datetime.timedelta(days=2)), MendeleyAccountFactory(expires_at=now + datetime.timedelta(days=4)), MendeleyAccountFactory(expires_at=now + datetime.timedelta(days=2)), ] box_targets = list( get_targets(delta=relativedelta(days=-3), addon_short_name='box')) drive_targets = list( get_targets(delta=relativedelta(days=-3), addon_short_name='googledrive')) mendeley_targets = list( get_targets(delta=relativedelta(days=-3), addon_short_name='mendeley')) assert_equal(records[1]._id, box_targets[0]._id) assert_not_in(records[0], box_targets) assert_equal(records[3]._id, drive_targets[0]._id) assert_not_in(records[2], drive_targets) assert_equal(records[5]._id, mendeley_targets[0]._id) assert_not_in(records[4], mendeley_targets)
def test_refresh(self, mock_box_refresh, mock_drive_refresh, mock_mendeley_refresh): fake_authorized_box_account = BoxAccountFactory( date_last_refreshed=datetime.datetime.utcnow()) fake_authorized_drive_account = GoogleDriveAccountFactory( date_last_refreshed=datetime.datetime.utcnow()) fake_authorized_mendeley_account = MendeleyAccountFactory( date_last_refreshed=datetime.datetime.utcnow()) fake_unauthorized_box_account = BoxAccountFactory( date_last_refreshed=datetime.datetime.utcnow() - datetime.timedelta(days=4)) fake_unauthorized_drive_account = GoogleDriveAccountFactory( date_last_refreshed=datetime.datetime.utcnow() - datetime.timedelta(days=4)) fake_unauthorized_mendeley_account = MendeleyAccountFactory( date_last_refreshed=datetime.datetime.utcnow() - datetime.timedelta(days=4)) for addon in self.addons: Provider = look_up_provider(addon) main(delta=relativedelta(days=3), Provider=Provider, rate_limit=(5, 1), dry_run=False) assert_equal(1, mock_box_refresh.call_count) assert_equal(1, mock_drive_refresh.call_count) assert_equal(1, mock_mendeley_refresh.call_count)
def test_migration(self): BoxUserSettings.remove() user = UserFactory() node = ProjectFactory(creator=user) account = BoxAccountFactory() user.external_accounts = [account] user.add_addon('box', auth=Auth(user)) user_addon = user.get_addon('box') user_addon.save() node.add_addon('box', auth=Auth(user)) node_addon = node.get_addon('box') node_addon.foreign_user_settings = user_addon node_addon.folder_id = 'abcdef0' node_addon.folder_path = '/' node_addon.folder_name = '/ (Full Box)' node_addon.save() assert_equal(node_addon.external_account, None) assert_equal(node_addon.folder_id, 'abcdef0') do_migration() node_addon.reload() assert_equal(node_addon.external_account, account) assert_equal(node_addon.folder_id, 'abcdef0') assert_equal(node_addon.folder_path, '/') assert_equal(node_addon.folder_name, '/ (Full Box)')
def _prep_oauth_case(self): self.node = ProjectFactory() self.user = self.node.creator self.external_account = BoxAccountFactory() self.user.external_accounts.append(self.external_account) self.user.save() self.user_settings = self.user.get_or_add_addon('box')
def test_clear_auth(self): node_settings = BoxNodeSettingsFactory() node_settings.external_account = BoxAccountFactory() node_settings.user_settings = BoxUserSettingsFactory() node_settings.save() node_settings.clear_auth() assert_is_none(node_settings.external_account) assert_is_none(node_settings.folder_id) assert_is_none(node_settings.user_settings)
def test_refresh(self, mock_box_refresh, mock_drive_refresh, mock_mendeley_refresh): fake_box_account = BoxAccountFactory( expires_at=datetime.datetime.utcnow()) fake_drive_account = GoogleDriveAccountFactory( expires_at=datetime.datetime.utcnow()) fake_mendeley_account = MendeleyAccountFactory( expires_at=datetime.datetime.utcnow()) for addon in self.addons: Provider = look_up_provider(addon) main(delta=relativedelta(days=-3), Provider=Provider, dry_run=False) assert_equal(1, mock_box_refresh.call_count) assert_equal(1, mock_drive_refresh.call_count) assert_equal(1, mock_mendeley_refresh.call_count)
def test_verify_oauth_access_no_metadata(self): self._prep_oauth_case() self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, ) self.user_settings.save() assert_true( self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account)) assert_false( self.user_settings.verify_oauth_access( node=self.node, external_account=BoxAccountFactory()))
def setUp(self): super(TestNodeSettingsCallbacks, self).setUp() # Create node settings with auth self.user_settings = BoxUserSettingsFactory(access_token='123abc') self.node_settings = BoxNodeSettingsFactory( user_settings=self.user_settings, ) self.external_account = BoxAccountFactory() self.user_settings.owner.external_accounts.append( self.external_account) self.node_settings.external_account = self.external_account self.project = self.node_settings.owner self.user = self.user_settings.owner self.user_settings.grant_oauth_access( node=self.project, external_account=self.external_account, )
def test_set_user_auth(self): node_settings = BoxNodeSettingsFactory() user_settings = BoxUserSettingsFactory() external_account = BoxAccountFactory() user_settings.owner.external_accounts.append(external_account) user_settings.save() node_settings.external_account = external_account node_settings.set_user_auth(user_settings) node_settings.save() assert_true(node_settings.has_auth) assert_equal(node_settings.user_settings, user_settings) # A log was saved last_log = node_settings.owner.logs[-1] assert_equal(last_log.action, 'box_node_authorized') log_params = last_log.params assert_equal(log_params['folder_id'], node_settings.folder_id) assert_equal(log_params['node'], node_settings.owner._primary_key) assert_equal(last_log.user, user_settings.owner)
def setUp(self): super(TestBoxNodeSettingsModel, self).setUp() self.node = ProjectFactory() self.user = self.node.creator self.external_account = BoxAccountFactory() self.user.add_addon('box') self.user.external_accounts.append(self.external_account) self.user.save() self.user_settings = self.user.get_addon('box') self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'}) self.user_settings.save() self.node_settings = BoxNodeSettingsFactory( user_settings=self.user_settings, folder_id='1234567890', owner=self.node) self.node_settings.external_account = self.external_account self.node_settings.save()
def set_user_settings(self, settings): external_account = BoxAccountFactory() settings.owner.external_accounts.append(external_account) settings.owner.save()