def provider_two():
    provider = PreprintProviderFactory(name='Spotarxiv')
    provider.allow_submissions = False
    provider.domain = 'https://www.spotarxiv.com'
    provider.description = 'spots not dots'
    provider.domain_redirect_enabled = True
    provider._id = 'spot'
    provider.share_publish_type = 'Thesis'
    provider.save()
    return provider
Ejemplo n.º 2
0
    def test_resolve_guid_download_file_from_emberapp_preprints_unpublished(self):
        # non-branded domains
        provider = PreprintProviderFactory(_id='sockarxiv', name='Sockarxiv', reviews_workflow='pre-moderation')

        # branded domains
        branded_provider = PreprintProviderFactory(_id='spot', name='Spotarxiv', reviews_workflow='pre-moderation')
        branded_provider.allow_submissions = False
        branded_provider.domain = 'https://www.spotarxiv.com'
        branded_provider.description = 'spots not dots'
        branded_provider.domain_redirect_enabled = True
        branded_provider.share_publish_type = 'Thesis'
        branded_provider.save()

        # test_provider_submitter_can_download_unpublished
        submitter = AuthUserFactory()
        pp = PreprintFactory(finish=True, provider=provider, is_published=False, creator=submitter)
        pp.run_submit(submitter)
        pp_branded = PreprintFactory(finish=True, provider=branded_provider, is_published=False, filename='preprint_file_two.txt', creator=submitter)
        pp_branded.run_submit(submitter)

        res = self.app.get('{}download'.format(pp.url), auth=submitter.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(WATERBUTLER_URL, pp._id, pp.primary_file.provider, pp.primary_file.path) in res.location

        res = self.app.get('{}download'.format(pp_branded.url), auth=submitter.auth)
        assert res.status_code == 302

        # test_provider_super_user_can_download_unpublished
        super_user = AuthUserFactory()
        super_user.is_superuser = True
        super_user.save()

        res = self.app.get('{}download'.format(pp.url), auth=super_user.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(WATERBUTLER_URL, pp._id, pp.primary_file.provider, pp.primary_file.path) in res.location

        res = self.app.get('{}download'.format(pp_branded.url), auth=super_user.auth)
        assert res.status_code == 302

        # test_provider_moderator_can_download_unpublished
        moderator = AuthUserFactory()
        provider.add_to_group(moderator, 'moderator')
        provider.save()

        res = self.app.get('{}download'.format(pp.url), auth=moderator.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(WATERBUTLER_URL, pp._id, pp.primary_file.provider, pp.primary_file.path) in res.location

        branded_provider.add_to_group(moderator, 'moderator')
        branded_provider.save()

        res = self.app.get('{}download'.format(pp_branded.url), auth=moderator.auth)
        assert res.status_code == 302

        # test_provider_admin_can_download_unpublished
        admin = AuthUserFactory()
        provider.add_to_group(admin, 'admin')
        provider.save()

        res = self.app.get('{}download'.format(pp.url), auth=admin.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(WATERBUTLER_URL, pp._id, pp.primary_file.provider, pp.primary_file.path) in res.location

        branded_provider.add_to_group(admin, 'admin')
        branded_provider.save()

        res = self.app.get('{}download'.format(pp_branded.url), auth=admin.auth)
        assert res.status_code == 302
Ejemplo n.º 3
0
    def test_resolve_guid_download_file_from_emberapp_preprints_unpublished(
            self):
        # non-branded domains
        provider = PreprintProviderFactory(_id='sockarxiv',
                                           name='Sockarxiv',
                                           reviews_workflow='pre-moderation')

        # branded domains
        branded_provider = PreprintProviderFactory(
            _id='spot', name='Spotarxiv', reviews_workflow='pre-moderation')
        branded_provider.allow_submissions = False
        branded_provider.domain = 'https://www.spotarxiv.com'
        branded_provider.description = 'spots not dots'
        branded_provider.domain_redirect_enabled = True
        branded_provider.share_publish_type = 'Thesis'
        branded_provider.save()

        # test_provider_submitter_can_download_unpublished
        submitter = AuthUserFactory()
        pp = PreprintFactory(finish=True,
                             provider=provider,
                             is_published=False,
                             creator=submitter)
        pp.run_submit(submitter)
        pp_branded = PreprintFactory(finish=True,
                                     provider=branded_provider,
                                     is_published=False,
                                     filename='preprint_file_two.txt',
                                     creator=submitter)
        pp_branded.run_submit(submitter)

        res = self.app.get('{}download'.format(pp.url), auth=submitter.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(
            WATERBUTLER_URL, pp._id, pp.primary_file.provider,
            pp.primary_file.path) in res.location

        res = self.app.get('{}download'.format(pp_branded.url),
                           auth=submitter.auth)
        assert res.status_code == 302

        # test_provider_super_user_can_download_unpublished
        super_user = AuthUserFactory()
        super_user.is_superuser = True
        super_user.save()

        res = self.app.get('{}download'.format(pp.url), auth=super_user.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(
            WATERBUTLER_URL, pp._id, pp.primary_file.provider,
            pp.primary_file.path) in res.location

        res = self.app.get('{}download'.format(pp_branded.url),
                           auth=super_user.auth)
        assert res.status_code == 302

        # test_provider_moderator_can_download_unpublished
        moderator = AuthUserFactory()
        provider.add_to_group(moderator, 'moderator')
        provider.save()

        res = self.app.get('{}download'.format(pp.url), auth=moderator.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(
            WATERBUTLER_URL, pp._id, pp.primary_file.provider,
            pp.primary_file.path) in res.location

        branded_provider.add_to_group(moderator, 'moderator')
        branded_provider.save()

        res = self.app.get('{}download'.format(pp_branded.url),
                           auth=moderator.auth)
        assert res.status_code == 302

        # test_provider_admin_can_download_unpublished
        admin = AuthUserFactory()
        provider.add_to_group(admin, 'admin')
        provider.save()

        res = self.app.get('{}download'.format(pp.url), auth=admin.auth)
        assert res.status_code == 302
        assert '{}/v1/resources/{}/providers/{}{}?action=download&version=1&direct'.format(
            WATERBUTLER_URL, pp._id, pp.primary_file.provider,
            pp.primary_file.path) in res.location

        branded_provider.add_to_group(admin, 'admin')
        branded_provider.save()

        res = self.app.get('{}download'.format(pp_branded.url),
                           auth=admin.auth)
        assert res.status_code == 302