class TestBoxMigration(OsfTestCase): # Note: BoxUserSettings.user_settings has to be changed to foreign_user_settings (model and mongo). See migration instructions def setUp(self): super(TestBoxMigration, self).setUp() self.user1 = UserFactory() self.user1_settings = BoxUserSettingsFactory(owner=self.user1) self.user1_settings.oauth_settings = BoxOAuthSettingsFactory() self.user1_settings.save() def tearDown(self): super(TestBoxMigration, self).tearDown() BoxUserSettings.remove() ExternalAccount.remove() def test_migration_no_project(self): self.old_oauth = self.user1_settings.oauth_settings do_migration([self.user1_settings]) self.user1_settings.reload() assert_is_none(self.user1_settings.oauth_settings) assert_equal(len(self.user1.external_accounts), 1) account = self.user1_settings.owner.external_accounts[0] assert_is_none(self.user1_settings.oauth_settings) assert_equal(account.provider, "box") assert_equal(account.oauth_key, self.old_oauth.access_token) def test_migration_removes_targets(self): project = ProjectFactory(creator=self.user1) project.add_addon("box", auth=Auth(self.user1)) node_addon = project.get_addon("box") node_addon.foreign_user_settings = self.user1_settings node_addon.save() assert_equal(get_targets().count(), 1) do_migration([self.user1_settings]) self.user1_settings.reload() assert_equal(get_targets().count(), 0) def test_migration_multiple_users(self): self.user2 = UserFactory() self.user2_settings = BoxUserSettingsFactory(owner=self.user2) self.user2_settings.oauth_settings = self.user1_settings.oauth_settings self.user2_settings.save() do_migration([self.user1_settings, self.user2_settings]) self.user1_settings.reload() self.user2_settings.reload() assert_equal(self.user1_settings.owner.external_accounts[0], self.user2_settings.owner.external_accounts[0]) def test_get_targets(self): self.user2 = UserFactory() self.user2_settings = BoxUserSettingsFactory(owner=self.user2) self.user2_settings.oauth_settings = None self.user2_settings.save() addons = [self.user2_settings, self.user1_settings] for addon in addons: addon.save() targets = get_targets() assert_equal(targets.count(), 1) assert_equal(targets[0]._id, addons[-1]._id)
class TestBoxMigration(OsfTestCase): # Note: BoxUserSettings.user_settings has to be changed to foreign_user_settings (model and mongo). See migration instructions def setUp(self): super(TestBoxMigration, self).setUp() self.user1 = UserFactory() self.user1_settings = BoxUserSettingsFactory(owner=self.user1) self.user1_settings.oauth_settings = BoxOAuthSettingsFactory() self.user1_settings.save() def tearDown(self): super(TestBoxMigration, self).tearDown() BoxUserSettings.remove() ExternalAccount.remove() def test_migration_no_project(self): self.old_oauth = self.user1_settings.oauth_settings do_migration([self.user1_settings]) self.user1_settings.reload() assert_is_none(self.user1_settings.oauth_settings) assert_equal(len(self.user1.external_accounts), 1) account = self.user1_settings.owner.external_accounts[0] assert_is_none(self.user1_settings.oauth_settings) assert_equal(account.provider, 'box') assert_equal(account.oauth_key, self.old_oauth.access_token) def test_migration_removes_targets(self): project = ProjectFactory(creator=self.user1) project.add_addon('box', auth=Auth(self.user1)) node_addon = project.get_addon('box') node_addon.foreign_user_settings = self.user1_settings node_addon.save() assert_equal(get_targets().count(), 1) do_migration([self.user1_settings]) self.user1_settings.reload() assert_equal(get_targets().count(), 0) def test_migration_multiple_users(self): self.user2 = UserFactory() self.user2_settings = BoxUserSettingsFactory(owner=self.user2) self.user2_settings.oauth_settings = self.user1_settings.oauth_settings self.user2_settings.save() do_migration([self.user1_settings, self.user2_settings]) self.user1_settings.reload() self.user2_settings.reload() assert_equal( self.user1_settings.owner.external_accounts[0], self.user2_settings.owner.external_accounts[0], ) def test_get_targets(self): self.user2 = UserFactory() self.user2_settings = BoxUserSettingsFactory(owner=self.user2) self.user2_settings.oauth_settings = None self.user2_settings.save() addons = [ self.user2_settings, self.user1_settings, ] for addon in addons: addon.save() targets = get_targets() assert_equal(targets.count(), 1) assert_equal(targets[0]._id, addons[-1]._id)