class TestShareSourcePreprintProvider(AdminTestCase): def setUp(self): self.user = AuthUserFactory() self.user.is_superuser = True self.user.save() self.preprint_provider = PreprintProviderFactory() self.request = RequestFactory().get('/fake_path') self.view = views.ShareSourcePreprintProvider() self.view = setup_user_view(self.view, self.request, user=self.user) self.view.kwargs = {'preprint_provider_id': self.preprint_provider.id} @mock.patch.object(views.ShareSourcePreprintProvider, 'share_post') def test_update_share_token_and_source(self, share_resp): token = 'tokennethbranagh' source_name = 'sir' share_resp.return_value = { 'data': { 'attributes': { 'longTitle': source_name, }, }, 'included': [{ 'attributes': { 'token': token, }, 'type': 'ShareUser', }] } self.view.get(self.request) self.preprint_provider.refresh_from_db() assert self.preprint_provider.access_token == token assert self.preprint_provider.share_source == source_name
class TestShareSourcePreprintProvider(AdminTestCase): def setUp(self): self.user = AuthUserFactory() self.user.is_superuser = True self.user.save() self.preprint_provider = PreprintProviderFactory() asset_file = ProviderAssetFileFactory(name='square_color_no_transparent') self.preprint_provider.asset_files.add(asset_file) self.preprint_provider.save() self.request = RequestFactory().get('/fake_path') self.view = views.ShareSourcePreprintProvider() self.view = setup_user_view(self.view, self.request, user=self.user, preprint_provider_id=self.preprint_provider.id) self.mock_prepend = mock.patch.object(website.settings, 'SHARE_PROVIDER_PREPEND', 'testenv') @responses.activate @mock.patch('api.share.utils.settings.SHARE_ENABLED', True) def test_update_share_token_and_source(self): token = 'tokennethbranagh' source_name = 'sir' responses.add( responses.POST, 'https://share.osf.io/api/v2/sources/', body=json.dumps({ 'data': { 'attributes': { 'longTitle': source_name, }, }, 'included': [{ 'attributes': { 'token': token, }, 'type': 'ShareUser', }] }) ) self.view.get(self.request) self.preprint_provider.refresh_from_db() assert self.preprint_provider.access_token == token assert self.preprint_provider.share_source == source_name @responses.activate @mock.patch('api.share.utils.settings.SHARE_ENABLED', True) def test_update_share_token_and_source_prefix(self): with self.mock_prepend: token = 'tokennethbranagh' responses.add( responses.POST, 'https://share.osf.io/api/v2/sources/', body=json.dumps({ 'data': { 'attributes': { 'homePage': self.preprint_provider.external_url, 'longTitle': f'testenv_{self.preprint_provider.name}', 'iconUrl': self.preprint_provider.get_asset_url('square_color_no_transparent') } }, 'included': [{ 'attributes': { 'token': token, }, 'type': 'ShareUser', }] }) ) self.view.get(self.request) self.preprint_provider.refresh_from_db() request_body = json.loads(responses.calls[-1].request.body) assert request_body['data']['attributes']['longTitle'] == f'testenv_{self.preprint_provider.name}' assert self.preprint_provider.access_token == token assert self.preprint_provider.share_source == f'testenv_{self.preprint_provider.name}'