Beispiel #1
0
def test_update_document(client: CustomFlaskClient, auth_header: any):
    pdf_file = '%s/example.pdf' % current_app.config.get('MOCKUP_DIRECTORY')
    document = (DocumentModel.select().where(
        DocumentModel.deleted_at.is_null()).order_by(
            fn.Random()).limit(1).get())
    db_wrapper.database.close()
    document_id = document.id

    data = {
        'document': open(pdf_file, 'rb'),
    }

    headers = auth_header()
    headers['Content-Type'] = 'multipart/form-data'

    response = client.put(f'/api/documents/{document_id}',
                          data=data,
                          headers=headers)
    json_response = response.get_json()
    json_data = json_response.get('data')

    parse_url = urlparse(json_data.get('url'))

    assert 200 == response.status_code
    assert isinstance(json_data.get('created_by').get('id'), int)
    assert pdf_file == json_data.get('name')
    assert document.mime_type == json_data.get('mime_type')
    assert FileStorage.get_filesize(pdf_file) == json_data.get('size')
    assert parse_url.scheme and parse_url.netloc
    assert document.created_at.strftime('%Y-%m-%d %H:%M:%S') == json_data.get(
        'created_at')
    assert json_data.get('updated_at') > json_data.get('created_at')
    assert json_data.get('deleted_at') is None
Beispiel #2
0
def test_update_user_endpoint(client: CustomFlaskClient, auth_header: any,
                              factory: any):
    user_id = (UserModel.select(UserModel.id).where(
        UserModel.deleted_at.is_null()).order_by(
            fn.Random()).limit(1).get().id)

    ignore_fields = [
        'id', 'active', 'created_at', 'updated_at', 'deleted_at', 'created_by'
    ]
    data = factory('User').make(to_dict=True, exclude=ignore_fields)

    data['password'] = os.getenv('TEST_USER_PASSWORD')
    role = (RoleModel.select().where(RoleModel.deleted_at.is_null()).order_by(
        fn.Random()).limit(1).get())
    data['role_id'] = role.id
    db_wrapper.database.close()

    response = client.put('/api/users/%s' % user_id,
                          json=data,
                          headers=auth_header())
    json_response = response.get_json()
    json_data = json_response.get('data')

    assert 200 == response.status_code
    assert user_id == json_data.get('id')
    assert data.get('name') == json_data.get('name')
    assert data.get('last_name') == json_data.get('last_name')
    assert data.get('birth_date') == json_data.get('birth_date')
    assert data.get('genre') == json_data.get('genre')
    assert json_data.get('created_at')
    assert json_data.get('updated_at') >= json_data.get('created_at')
    assert json_data.get('deleted_at') is None

    role_data = json_data.get('roles')[0]

    assert role.name == role_data.get('name')
    assert role.label == role_data.get('label')
Beispiel #3
0
def test_update_role_endpoint(client: CustomFlaskClient, auth_header: any,
                              factory: any):
    role_id = (RoleModel.select(RoleModel.id).where(
        RoleModel.deleted_at.is_null()).order_by(
            fn.Random()).limit(1).get().id)
    db_wrapper.database.close()

    ignore_fields = ['id', 'created_at', 'updated_at', 'deleted_at', 'name']
    data = factory('Role').make(exclude=ignore_fields, to_dict=True)

    response = client.put('/api/roles/%s' % role_id,
                          json=data,
                          headers=auth_header())

    json_response = response.get_json()
    json_data = json_response.get('data')

    assert 200 == response.status_code
    assert role_id == json_data.get('id')
    assert data.get('label') == json_data.get('label')
    assert data.get('label').lower().replace(' ', '-') == json_data.get('name')
    assert json_data.get('created_at')
    assert json_data.get('updated_at') >= json_data.get('created_at')
    assert json_data.get('deleted_at') is None