コード例 #1
0
def test_get_token_with_created_user():
    response = get_token(app, membership_doc, user)
    assert response.status == 201
    assert response.json['access_token'] is not None
    assert response.json['token_type'] == 'bearer'

    global user_token
    user_token = response.json['access_token']
コード例 #2
0
def test_get_me():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]
    request, response = app.test_client.get(
        '/api/v1/me',
        headers={
            'Authorization': 'Bearer {}'.format(token)
        }
    )
    assert response.status == 200
コード例 #3
0
def test_get_user_type():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    request, response = app.test_client.get(
        '/api/v1/memberships/{}/user-types/{}'.format(
            str(membership_doc['_id']), user_type_id),
        headers={'Authorization': 'Bearer {}'.format(token)})

    assert response.status == 200
    assert response.json['_id'] == user_type_id
コード例 #4
0
def test_delete_user():

    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    request, response = app.test_client.delete(
        '/api/v1/memberships/{}/users/{}'.format(str(membership_doc['_id']),
                                                 str(user['_id'])),
        headers={'Authorization': 'Bearer {}'.format(token)})

    assert response.status == 204
    assert response.json is None
コード例 #5
0
def test_update_role():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    role['name'] = 'updated_test_role'
    request, response = app.test_client.put(
        '/api/v1/memberships/{}/roles/{}'.format(str(membership_doc['_id']),
                                                 role['_id'], token),
        data=json.dumps(role),
        headers={'Authorization': 'Bearer {}'.format(token)})
    assert response.status == 200
    assert response.json['_id'] == role['_id']
    assert response.json['name'] == "updated_test_role"
コード例 #6
0
def test_get_application_test():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]
    request, response = app.test_client.get(
        '/api/v1/memberships/{}/applications/{}'.format(
            str(membership_doc['_id']), application_id),
        headers={'Authorization': 'Bearer {}'.format(token)})

    assert response.status == 200
    assert response.json['name'] == 'test_application'

    global application
    application = response.json
コード例 #7
0
def test_revoke_token():
    token = get_token(app, membership_doc, user_doc)
    a_token = token.json["access_token"]
    r_token = token.json["refresh_token"]

    request, response = app.test_client.post(
        '/api/v1/revoke-token',
        data=json.dumps({'token': r_token}),
        headers={
            'Authorization': 'Bearer {}'.format(a_token)
        }
    )

    assert response.status is 204
コード例 #8
0
def test_create_application():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]
    application_model = {'name': 'test_application', 'role': 'admin-2'}

    headers = {'Authorization': 'Bearer {}'.format(token)}

    request, response = app.test_client.post(
        '/api/v1/memberships/{}/applications'.format(str(
            membership_doc['_id'])),
        data=json.dumps(application_model),
        headers=headers)

    global application_id
    application_id = response.json['_id']

    assert response.status == 201
    assert response.json['name'] == 'test_application'
コード例 #9
0
def test_update_user_type():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    request, response = app.test_client.put(
        '/api/v1/memberships/{}/user-types/{}'.format(
            str(membership_doc['_id']), user_type_id),
        data=json.dumps({
            'name': 'UpdatedTestUserModel',
            "schema": {
                "properties": {
                    "display_name": {
                        "type": "string",
                        "description": "Display Name"
                    },
                    "photo_url": {
                        "type": "string",
                        "description": "Photo Url",
                        "maxLength": 250,
                        "minLength": 0,
                    },
                    "profile_link": {
                        "type": "string",
                        "description": "Profile Link",
                        "maxLength": 250,
                        "minLength": 0
                    },
                    "facebook_login_name": {
                        "type": "string",
                        "description": "Facebook Login Name",
                        "maxLength": 250,
                        "minLength": 0
                    }
                },
                "required":
                ["photo_url", "profile_link", "facebook_login_name"],
                "additionalProperties": True
            }
        }),
        headers={'Authorization': 'Bearer {}'.format(token)})

    assert response.status == 200
    assert response.json['_id'] is not None
コード例 #10
0
def test_query_applications():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]
    request, response = app.test_client.post(
        '/api/v1/memberships/{}/applications/_query'.format(
            str(membership_doc['_id'])),
        data=json.dumps({
            'where': {},
            'select': {}
        }),
        headers={'Authorization': 'Bearer {}'.format(token)})

    assert response.status == 200
    assert response.json is not None
    applications_query_result = response.json
    assert 'data' in applications_query_result
    data = applications_query_result['data']
    assert 'items' in data
    assert 'count' in data

    assert data['count'] == 1
コード例 #11
0
def test_create_role():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    role_model = {
        'name': 'test_role',
        'permissions':
        ['users.*', 'applications.*', 'roles.*', 'user_types.*']
    }

    headers = {'Authorization': 'Bearer {}'.format(token)}

    request, response = app.test_client.post(
        '/api/v1/memberships/{}/roles'.format(str(membership_doc['_id'])),
        data=json.dumps(role_model),
        headers=headers)

    assert response.status == 201
    assert response.json['name'] == 'test_role'

    global role_id
    role_id = response.json['_id']
コード例 #12
0
def test_generate_token():
    response = get_token(app, membership_doc, user_doc)
    assert response.status == 201
    assert 'access_token' in response.json
    assert 'refresh_token' in response.json
コード例 #13
0
def test_get_results_200(client, status_code):
    token = get_token(client, 'long', '1234')
    resp = get_results_demo(client, token)
    assert resp.status_code == status_code
コード例 #14
0
def test_create_user():
    token = get_token(app, membership_doc, user_doc)
    token = token.json["access_token"]

    request, response = app.test_client.post(
        '/api/v1/memberships/{}/user-types'.format(str(membership_doc['_id'])),
        data=json.dumps({
            "name": "TestUserModel",
            "description": "Test model",
            "schema": {
                "properties": {
                    "photo_url": {
                        "type": "string",
                        "description": "Photo Url",
                        "maxLength": 250,
                        "minLength": 0,
                    },
                    "profile_link": {
                        "type": "string",
                        "description": "Profile Link",
                        "maxLength": 250,
                        "minLength": 0
                    },
                    "facebook_login_name": {
                        "type": "string",
                        "description": "Facebook Login Name",
                        "maxLength": 250,
                        "minLength": 0
                    }
                },
                "required": ["photo_url", "profile_link"],
                "additionalProperties": True
            }
        }),
        headers={'Authorization': 'Bearer {}'.format(token)})

    global user_type_id
    user_type_id = response.json['_id']

    request, response = app.test_client.post(
        '/api/v1/memberships/{}/users'.format(str(membership_doc['_id'])),
        data=json.dumps({
            "username": "******",
            "password": "******",
            "firstname": "test",
            "lastname": "user",
            "role": role_doc['slug'],
            "status": "active",
            "email": "*****@*****.**",
            "photo_url": "http://test.com/user-profile/photos/photo.jpg",
            "profile_link": "http://test.com/user-profile"
        }),
        headers={'Authorization': 'Bearer {}'.format(token)})

    global user
    user = response.json

    assert response.status == 201
    assert user['username'] == 'testuser'
    assert user['_id'] is not None

    response = get_user_type_of_membership(app, membership_doc, token)
    assert response.status == 200
    assert response.json['_id'] is not None

    required_custom_fields = response.json['schema']['required']

    for prop in required_custom_fields:
        assert prop in user.keys()