Ejemplo n.º 1
0
def test_update_document(db_conn):
    schema = vases_schema
    data1 = {
        'name':
        'celestial',
        'plants': [
            {
                'species': 'zzplant',
                'quantity': 2
            },
            {
                'species': 'rubbertree',
                'quantity': 1
            },
        ],
        'soil': {
            'color': 'black'
        }
    }
    document1, errors1 = util.insert_document(schema, data1, db_conn)
    subdoc1 = pick(document1, ('name', 'plants', 'soil'))
    subdata1 = pick(data1, ('name', 'plants', 'soil'))
    data2 = {
        'id': 'haxxor',
        'name': 'zen',
    }
    document2, errors2 = util.update_document(schema, document1, data2,
                                              db_conn)
    subdoc2 = pick(document2, ('name', 'plants', 'soil'))
    subdata2 = pick(data2, ('name', 'plants', 'soil'))
    assert len(errors1) == 0
    assert subdoc1 == subdata1
    assert document1['id'] == document2['id']
    assert len(errors2) == 0
    assert subdoc2 == extend({}, subdata1, subdata2)
Ejemplo n.º 2
0
def mark_notice_as_unread(notice, db_conn):
    """
    Marks the notice as unread.
    """

    schema = notice_schema
    return update_document(schema, notice, {'read': False}, db_conn)
Ejemplo n.º 3
0
def mark_notice_as_unread(notice, db_conn):
    """
    Marks the notice as unread.
    """

    schema = notice_schema
    return update_document(schema, notice, {'read': False}, db_conn)
Ejemplo n.º 4
0
def test_update_document(db_conn):
    schema = vases_schema
    data1 = {
        'name': 'celestial',
        'plants': [
            {'species': 'zzplant', 'quantity': 2},
            {'species': 'rubbertree', 'quantity': 1},
        ],
        'soil': {'color': 'black'}
    }
    document1, errors1 = util.insert_document(schema, data1, db_conn)
    subdoc1 = pick(document1, ('name', 'plants', 'soil'))
    subdata1 = pick(data1, ('name', 'plants', 'soil'))
    data2 = {
        'id': 'haxxor',
        'name': 'zen',
    }
    document2, errors2 = util.update_document(schema,
                                              document1, data2, db_conn)
    subdoc2 = pick(document2, ('name', 'plants', 'soil'))
    subdata2 = pick(data2, ('name', 'plants', 'soil'))
    assert len(errors1) == 0
    assert subdoc1 == subdata1
    assert document1['id'] == document2['id']
    assert len(errors2) == 0
    assert subdoc2 == extend({}, subdata1, subdata2)
Ejemplo n.º 5
0
def update_user_password(prev_data, data, db_conn):
    """
    Overwrite update method to add password.
    """

    schema = user_schema
    data = pick(data, ('password',))
    data, errors = update_document(schema, prev_data, data, db_conn)
    return data, errors
Ejemplo n.º 6
0
def update_user_password(prev_data, data, db_conn):
    """
    Overwrite update method to add password.
    """

    schema = user_schema
    data = pick(data, ('password',))
    data, errors = update_document(schema, prev_data, data, db_conn)
    return data, errors
Ejemplo n.º 7
0
def remove_user_subjects(user_id, subject_id, db_conn):
    """
    Remove a subject from a user's list of subjects.
    """

    prev_data = get_user_subjects(user_id, db_conn)
    data = deepcopy(prev_data)
    data['subject_ids'].remove(subject_id)
    schema = user_subjects_schema
    return update_document(schema, prev_data, data, db_conn)
Ejemplo n.º 8
0
def append_user_subjects(user_id, subject_id, db_conn):
    """
    Add a subject to a user's list of subjects.
    """

    prev_data = get_user_subjects(user_id, db_conn)
    data = deepcopy(prev_data)
    data['subject_ids'].append(subject_id)
    schema = user_subjects_schema
    return update_document(schema, prev_data, data, db_conn)
Ejemplo n.º 9
0
def update_topic(prev_data, data, db_conn):
    """
    Update an existing topic.
    """

    schema = topic_schema
    data, errors = update_document(schema, prev_data, data, db_conn)
    if not errors:
        add_topic_to_es(data)
    return data, errors
Ejemplo n.º 10
0
def update_user(prev_data, data, db_conn):
    """
    Overwrite update method to remove password.
    """

    schema = user_schema
    data = omit(data, ('password',))
    data, errors = update_document(schema, prev_data, data, db_conn)
    if not errors:
        add_user_to_es(data)
    return data, errors
Ejemplo n.º 11
0
def update_user(prev_data, data, db_conn):
    """
    Overwrite update method to remove password.
    """

    schema = user_schema
    data = omit(data, ('password',))
    data, errors = update_document(schema, prev_data, data, db_conn)
    if not errors:
        add_user_to_es(data)
    return data, errors
Ejemplo n.º 12
0
def update_post(prev_data, data, db_conn):
    """
    Update an existing post.
    """

    schema = get_post_schema(data)
    data2 = omit(data, ('id', 'created', 'modified'))
    data2 = extend({}, prev_data, data2)
    data, errors = validate_post(data2, db_conn)
    if errors:
        return data, errors
    data, errors = update_document(schema, prev_data, data, db_conn)
    if not errors:
        add_post_to_es(data, db_conn)
    return data, errors
Ejemplo n.º 13
0
def update_card_parameters(prev_data, data, db_conn):
    """
    """

    schema = card_parameters_schema
    return update_document(schema, prev_data, data, db_conn)