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
Example #2
0
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}'