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'
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
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'
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)
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)
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_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)
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)