Esempio n. 1
0
 def test_oembed_does_not_support_xml(self, api):
     '''It does not support xml format.'''
     dataset = DatasetFactory()
     url = url_for('api.oembed', url=dataset.external_url, format='xml')
     response = api.get(url)
     assert_status(response, 501)
     assert response.json['message'] == 'Only JSON format is supported'
Esempio n. 2
0
 def test_oembed_does_not_support_xml(self, api):
     '''It does not support xml format.'''
     dataset = DatasetFactory()
     url = url_for('api.oembed', url=dataset.external_url, format='xml')
     response = api.get(url)
     assert_status(response, 501)
     assert response.json['message'] == 'Only JSON format is supported'
Esempio n. 3
0
    def test_implicit_grant_token(self, client, oauth):
        client.login()
        response = client.post(url_for(
            'oauth.authorize',
            response_type='token',
            client_id=oauth.client_id,
        ), {
            'accept': '',
        })

        assert_status(response, 302)
        assert 'access_token=' in response.location
Esempio n. 4
0
    def test_invalid_implicit_grant_token(self, client, oauth):
        client.login()
        response = client.post(url_for(
            'oauth.authorize',
            response_type='token',
            client_id=oauth.client_id,
        ), {
            'accept': '',
        })

        assert_status(response, 400)
        assert response.json['error'] == 'invalid_grant'
Esempio n. 5
0
    def test_implicit_grant_token(self, client, oauth):
        client.login()
        response = client.post(url_for(
            'oauth.authorize',
            response_type='token',
            client_id=oauth.client_id,
        ), {
            'accept': '',
        })

        assert_status(response, 302)
        assert 'access_token=' in response.location
Esempio n. 6
0
    def test_authorization_redirects_for_internal_clients(self, client, oauth):
        client.login()

        response = client.get(
            url_for('oauth.authorize',
                    response_type='code',
                    client_id=oauth.client_id,
                    redirect_uri=oauth.default_redirect_uri))

        assert_status(response, 302)
        uri, params = response.location.split('?')

        assert uri == oauth.default_redirect_uri
        assert 'code' in parse_qs(params)
Esempio n. 7
0
    def test_authorization_redirects_for_internal_clients(self, client, oauth):
        client.login()

        response = client.get(url_for(
            'oauth.authorize',
            response_type='code',
            client_id=oauth.client_id,
            redirect_uri=oauth.default_redirect_uri
        ))

        assert_status(response, 302)
        uri, params = response.location.split('?')

        assert uri == oauth.default_redirect_uri
        assert 'code' in parse_qs(params)
Esempio n. 8
0
    def test_authorization_accept(self, client, oauth):
        '''Should redirect to the redirect_uri on authorization accepted'''
        client.login()

        response = client.post(
            url_for('oauth.authorize',
                    response_type='code',
                    client_id=oauth.client_id,
                    redirect_uri=oauth.default_redirect_uri), {
                        'scope': 'default',
                        'accept': '',
                    })

        assert_status(response, 302)
        uri, params = response.location.split('?')
        assert uri == oauth.default_redirect_uri
Esempio n. 9
0
    def test_authorization_accept(self, client, oauth):
        '''Should redirect to the redirect_uri on authorization accepted'''
        client.login()

        response = client.post(url_for(
            'oauth.authorize',
            response_type='code',
            client_id=oauth.client_id,
            redirect_uri=oauth.default_redirect_uri
        ), {
            'scope': 'default',
            'accept': '',
        })

        assert_status(response, 302)
        uri, params = response.location.split('?')
        assert uri == oauth.default_redirect_uri
    def test_create_member_exists(self, api):
        user = api.login()
        added_user = UserFactory()
        organization = OrganizationFactory(members=[
            Member(user=user, role='admin'),
            Member(user=added_user, role='editor')
        ])

        api_url = url_for('api.member', org=organization, user=added_user)
        response = api.post(api_url, {'role': 'admin'})

        assert_status(response, 409)

        assert response.json['role'] == 'editor'

        organization.reload()
        assert organization.is_member(added_user)
        assert not organization.is_admin(added_user)
Esempio n. 11
0
    def test_accept_membership(self, api):
        user = api.login()
        applicant = UserFactory()
        membership_request = MembershipRequest(user=applicant, comment='test')
        member = Member(user=user, role='admin')
        organization = OrganizationFactory(
            members=[member], requests=[membership_request])

        api_url = url_for(
            'api.accept_membership',
            org=organization,
            id=membership_request.id)
        response = api.post(api_url)
        assert200(response)

        assert response.json['role'] == 'editor'

        organization.reload()
        assert len(organization.requests) is 1
        assert len(organization.pending_requests) is 0
        assert len(organization.refused_requests) is 0
        assert len(organization.accepted_requests) is 1
        assert organization.is_member(applicant)

        request = organization.requests[0]
        assert request.user == applicant
        assert request.status == 'accepted'
        assert request.comment == 'test'
        assert request.handled_by == user
        assert request.handled_on is not None
        assert request.refusal_comment is None

        # test accepting twice will raise 409
        api_url = url_for(
            'api.accept_membership',
            org=organization,
            id=membership_request.id)
        response = api.post(api_url)
        assert_status(response, 409)