예제 #1
0
def _run_events_and_compare(events):
    current_search.flush_and_refresh('relationships')
    for ev in events:
        event = generate_payload(ev)
        EventAPI.handle_event(event)
        reindex_all_relationships()
        assert_es_equals_db()
예제 #2
0
def test_identities(events, result_sets, db, es):
    # NOTE: We assume that only on identifier scheme being used so just using
    # identifier values is enough when comparing sets.
    for ev in events:
        EventAPI.handle_event(generate_payload(ev))

    for rs in result_sets:
        for v in rs:
            id_ = Identifier.query.filter_by(value=v).one()
            ids = set(i.value for i in id_.get_identities())
            assert ids == rs
예제 #3
0
def test_simple_citations(test_case_name, events, results, db, es):
    """Test simple citation queries."""
    for ev in events:
        EventAPI.handle_event(generate_payload(ev))
    es.indices.refresh()
    for cited_id_value, (citation_result, relation_result) in results.items():
        cited_id = (Identifier.query
                    .filter_by(value=cited_id_value).one())
        citations = set()
        relations = set()
        for citing_id, relation in RelationshipAPI.get_citations(cited_id):
            citations |= {i.value for i in citing_id}
            relations |= {(r.source.value, r.target.value) for r in relation}
        assert citations == citation_result
        assert relations == relation_result
예제 #4
0
 def post(self):
     """Submit an event."""
     try:
         no_index = bool(request.args.get('noindex', False))
         event = EventAPI.handle_event(request.json,
                                       user_id=current_user.id,
                                       no_index=no_index)
     except JSONValidationError as e:
         raise PayloadValidationRESTError(e.message, code=422)
     except MarshmallowValidationError as e:
         msg = "Validation error: " + str(e.messages)
         raise PayloadValidationRESTError(msg, code=422)
     return jsonify({
         'message': 'event accepted',
         'event_id': str(event.id)
     }), 202
def _process_events(events):
    for e in events:
        EventAPI.handle_event(generate_payload(e))
    reindex_all_relationships()
예제 #6
0
def _handle_events(events, no_index=False):
    for ev in events:
        EventAPI.handle_event(generate_payload(ev), no_index=no_index)
예제 #7
0
def test_grouping_query(test_case_name, events, results, db, es):
    for ev in events:
        EventAPI.handle_event(generate_payload(ev))
    for cited_id_value, _ in results.items():
        pass
예제 #8
0
def _process_events(events):
    for e in events:
        EventAPI.handle_event(generate_payload(e))
        current_search.flush_and_refresh('relationships')