def test_event_descriptor_insertion(): # format some data keys for insertion data_keys = {'some_value': {'source': 'PV:pv1', 'shape': [1, 2], 'dtype': 'array'}, 'some_other_val': {'source': 'PV:pv2', 'shape': [], 'dtype': 'number'}, 'data_key3': {'source': 'PV:pv1', 'shape': [], 'dtype': 'number', 'external': 'FS:foobar'}} time = ttime.time() # test insert ev_desc_uid = mdsc.insert_event_descriptor(run_start_uid, data_keys, time) ev_desc_mds, = mdsc.find_event_descriptors(uid=ev_desc_uid) # make sure the sanitized event descriptor has no uid check_for_id(ev_desc_mds) # make sure the event descriptor is pointing to the correct run start referenced_run_start = ev_desc_mds.run_start assert_equal(referenced_run_start.uid, run_start_uid) assert_equal(ev_desc_mds['time'], time) for k in data_keys: for ik in data_keys[k]: assert_equal(getattr(ev_desc_mds.data_keys[k], ik), data_keys[k][ik])
def f(name, stop_doc): uid = stop_doc['run_start'] start, = find_run_starts(uid=uid) descriptors = find_event_descriptors(run_start=uid) # For convenience, I'll rely on the broker to get Events. header = db[uid] events = db.fetch_events(header) callback.start(start) for d in descriptors: callback.descriptor(d) for e in events: callback.event(e) callback.stop(stop_doc)