class TestGoogleDriveUserSettings(OsfTestCase): def setUp(self): super(TestGoogleDriveUserSettings, self).setUp() self.node = ProjectFactory() self.user = self.node.creator self.external_account = GoogleDriveAccountFactory() self.user.external_accounts.append(self.external_account) self.user.save() self.user_settings = self.user.get_or_add_addon('googledrive') def tearDown(self): super(TestGoogleDriveUserSettings, self).tearDown() self.user_settings.remove() self.external_account.remove() self.node.remove() self.user.remove() def test_grant_oauth_access_no_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, ) self.user_settings.save() assert_equal( self.user_settings.oauth_grants, {self.node._id: { self.external_account._id: {} }}, ) def test_grant_oauth_access_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'}) self.user_settings.save() assert_equal( self.user_settings.oauth_grants, { self.node._id: { self.external_account._id: { 'folder': 'fake_folder_id' } }, }) def test_verify_oauth_access_no_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, ) self.user_settings.save() account_has_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account) factory_account_has_access = self.user_settings.verify_oauth_access( node=self.node, external_account=GoogleDriveAccountFactory()) assert_true(account_has_access) assert_false(factory_account_has_access) def test_verify_oauth_access_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'}) self.user_settings.save() correct_meta_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'}) incorrect_meta_no_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'another_folder_id'}) assert_true(correct_meta_access) assert_false(incorrect_meta_no_access)
class TestGoogleDriveUserSettings(OsfTestCase): def setUp(self): super(TestGoogleDriveUserSettings, self).setUp() self.node = ProjectFactory() self.user = self.node.creator self.external_account = GoogleDriveAccountFactory() self.user.external_accounts.append(self.external_account) self.user.save() self.user_settings = self.user.get_or_add_addon('googledrive') def tearDown(self): super(TestGoogleDriveUserSettings, self).tearDown() self.user_settings.remove() self.external_account.remove() self.node.remove() self.user.remove() def test_grant_oauth_access_no_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, ) self.user_settings.save() assert_equal( self.user_settings.oauth_grants, {self.node._id: {self.external_account._id: {}}}, ) def test_grant_oauth_access_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'} ) self.user_settings.save() assert_equal( self.user_settings.oauth_grants, { self.node._id: { self.external_account._id: {'folder': 'fake_folder_id'} }, } ) def test_verify_oauth_access_no_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, ) self.user_settings.save() account_has_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account ) factory_account_has_access = self.user_settings.verify_oauth_access( node=self.node, external_account=GoogleDriveAccountFactory() ) assert_true(account_has_access) assert_false(factory_account_has_access) def test_verify_oauth_access_metadata(self): self.user_settings.grant_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'} ) self.user_settings.save() correct_meta_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'fake_folder_id'} ) incorrect_meta_no_access = self.user_settings.verify_oauth_access( node=self.node, external_account=self.external_account, metadata={'folder': 'another_folder_id'} ) assert_true(correct_meta_access) assert_false(incorrect_meta_no_access)