예제 #1
0
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])
예제 #2
0
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])
예제 #3
0
 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)