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()
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
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
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()
def _handle_events(events, no_index=False): for ev in events: EventAPI.handle_event(generate_payload(ev), no_index=no_index)
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
def _process_events(events): for e in events: EventAPI.handle_event(generate_payload(e)) current_search.flush_and_refresh('relationships')