Пример #1
0
def test_run_stop_insertion():
    """Test, uh, the insertion of run stop documents
    """
    run_start_uid = mdsc.insert_run_start(
        time=ttime.time(), beamline_id='sample_beamline', scan_id=42,
        uid=str(uuid.uuid4()))
    time = ttime.time()
    exit_status = 'success'
    reason = 'uh, because this is testing and it better be a success?'
    # insert the document
    run_stop_uid = mdsc.insert_run_stop(run_start_uid, time,
                                        exit_status=exit_status,
                                        reason=reason, uid=str(uuid.uuid4()))

    # get the sanitized run_stop document from metadatastore
    run_stop, = mdsc.find_run_stops(uid=run_stop_uid)

    # make sure it does not have an 'id' field
    check_for_id(run_stop)
    # make sure the run stop is pointing to the correct run start
    referenced_run_start = run_stop['run_start']
    assert referenced_run_start.uid == run_start_uid

    # check the remaining fields
    comparisons = {'time': time,
                   'exit_status': exit_status,
                   'reason': reason,
                   'uid': run_stop_uid}
    for attr, known_value in comparisons.items():
        assert known_value == getattr(run_stop, attr)
Пример #2
0
def test_custom_warn():

    run_start_uid = str(uuid.uuid4())

    warnings.simplefilter('always', UserWarning)
    with warnings.catch_warnings(record=True) as w:
        run_start_uid = mdsc.insert_run_start(
            scan_id=30220, beamline_id='testbed',
            owner='Al the Aardvark', group='Orycteropus',
            project='Nikea', time=document_insertion_time,
            uid=run_start_uid, custom={'order': 'Tubulidentata'})
        assert len(w) == 1

    rs = next(mdsc.find_run_starts(order='Tubulidentata'))
    assert rs['uid'] == run_start_uid

    with warnings.catch_warnings(record=True) as w:
        ev_desc_uid = mdsc.insert_descriptor(
            run_start_uid,
            {'a': {'source': 'zoo', 'shape': [], 'dtype': 'number'}},
            ttime.time(), str(uuid.uuid4()), custom={'food': 'ants'})

        assert len(w) == 1
    ed = mdsc.descriptor_given_uid(ev_desc_uid)
    assert ed['food'] == 'ants'

    with warnings.catch_warnings(record=True) as w:
        stop_uid = str(uuid.uuid4())
        mdsc.insert_run_stop(run_start_uid, ttime.time(),
                             stop_uid, custom={'navy': 'VF-114'})

        assert len(w) == 1

    run_stop = mdsc.run_stop_given_uid(stop_uid)
    assert run_stop['navy'] == 'VF-114'
Пример #3
0
def test_run_stop_insertion():
    """Test, uh, the insertion of run stop documents
    """
    run_start_uid = mdsc.insert_run_start(
        time=ttime.time(), beamline_id='sample_beamline', scan_id=42,
        uid=str(uuid.uuid4()))
    time = ttime.time()
    exit_status = 'success'
    reason = 'uh, because this is testing and it better be a success?'
    # insert the document
    run_stop_uid = mdsc.insert_run_stop(run_start_uid, time,
                                       exit_status=exit_status,
                                       reason=reason, uid=str(uuid.uuid4()))

    # get the sanitized run_stop document from metadatastore
    run_stop, = mdsc.find_run_stops(uid=run_stop_uid)

    # make sure it does not have an 'id' field
    check_for_id(run_stop)
    # make sure the run stop is pointing to the correct run start
    referenced_run_start = run_stop['run_start']
    assert_equal(referenced_run_start.uid, run_start_uid)

    # check the remaining fields
    comparisons = {'time': time,
                   'exit_status': exit_status,
                   'reason': reason,
                   'uid': run_stop_uid}
    for attr, known_value in comparisons.items():
        assert_equal(known_value, getattr(run_stop, attr))
Пример #4
0
def test_no_evdesc():
    run_start_uid = mdsc.insert_run_start(
        scan_id=42, beamline_id='testbed', owner='tester',
        group='awesome-devs', project='Nikea', time=document_insertion_time,
        uid=str(uuid.uuid4()))

    with pytest.raises(mdsc.NoEventDescriptors):
        mdsc.descriptors_by_start(run_start_uid)
Пример #5
0
def test_no_evdesc():

    run_start_uid = mdsc.insert_run_start(scan_id=42,
                                        beamline_id='testbed',
                                        owner='tester',
                                        group='awesome-devs',
                                        project='Nikea',
                                        time=document_insertion_time,
                                        uid=str(uuid.uuid4()))

    mdsc.descriptors_by_start(run_start_uid)
Пример #6
0
def setup_module(module):
    mds_setup()
    global run_start_uid, document_insertion_time
    document_insertion_time = ttime.time()
    temperature_ramp.run()

    run_start_uid = mdsc.insert_run_start(scan_id=3022013,
                                          beamline_id='testbed',
                                          owner='tester',
                                          group='awesome-devs',
                                          project='Nikea',
                                          time=document_insertion_time,
                                          uid=str(uuid.uuid4()))
Пример #7
0
def setup():
    mds_setup()
    global run_start_uid, document_insertion_time
    document_insertion_time = ttime.time()
    temperature_ramp.run()

    run_start_uid = mdsc.insert_run_start(scan_id=3022013,
                                        beamline_id='testbed',
                                        owner='tester',
                                        group='awesome-devs',
                                        project='Nikea',
                                        time=document_insertion_time,
                                        uid=str(uuid.uuid4()))
Пример #8
0
def setup():
    mds_setup()
    global blc_uid, run_start_uid, document_insertion_time
    document_insertion_time = ttime.time()
    temperature_ramp.run()
    blc_uid = mdsc.insert_beamline_config({}, time=document_insertion_time)
    run_start_uid = mdsc.insert_run_start(scan_id=3022013,
                                          beamline_id='testbed',
                                          beamline_config=blc_uid,
                                          owner='tester',
                                          group='awesome-devs',
                                          project='Nikea',
                                          time=document_insertion_time)
Пример #9
0
def setup():
    mds_setup()
    global blc_uid, run_start_uid, document_insertion_time
    document_insertion_time = ttime.time()
    temperature_ramp.run()
    blc_uid = mdsc.insert_beamline_config({}, time=document_insertion_time)
    run_start_uid = mdsc.insert_run_start(scan_id=3022013,
                                          beamline_id='testbed',
                                          beamline_config=blc_uid,
                                          owner='tester',
                                          group='awesome-devs',
                                          project='Nikea',
                                          time=document_insertion_time)
Пример #10
0
def test_connect_mds_mongodb():
    try:
        from metadatastore.utils.testing import mds_setup, mds_teardown
        import metadatastore.commands as mdsc
    except ImportError:
        raise nose.SkipTest

    try:
        mds_setup()
        # Until we insert something, the db is not actually created.

        mdsc.insert_run_start(scan_id=3022013,
                              beamline_id='testbed',
                              owner='tester',
                              group='awesome-devs',
                              project='Nikea',
                              time=time.time(),
                              uid=str(uuid.uuid4()))
        connect_mds_mongodb()

    except:
        raise
    finally:
        mds_teardown()
Пример #11
0
def test_connect_mds_mongodb():
    try:
        from metadatastore.utils.testing import mds_setup, mds_teardown
        import metadatastore.commands as mdsc
    except ImportError:
        raise nose.SkipTest

    try:
        mds_setup()
        # Until we insert something, the db is not actually created.

        mdsc.insert_run_start(scan_id=3022013,
                             beamline_id='testbed',
                             owner='tester',
                             group='awesome-devs',
                             project='Nikea',
                             time=time.time(),
                             uid=str(uuid.uuid4()))
        connect_mds_mongodb()

    except:
        raise
    finally:
        mds_teardown()
Пример #12
0
def test_bad_event_desc():

    data_keys = {k:  {'source': k,
                      'dtype': 'number',
                      'shape': None} for k in ['foo', 'foo.bar']
                 }
    scan_id = 1

    # Create a BeginRunEvent that serves as entry point for a run
    rs = mdsc.insert_run_start(scan_id=scan_id, beamline_id='testing',
                              time=ttime.time(),
                              uid=str(uuid.uuid4()))

    # Create an EventDescriptor that indicates the data
    # keys and serves as header for set of Event(s)
    mdsc.insert_descriptor(data_keys=data_keys,
                           time=ttime.time(),
                           run_start=rs, uid=str(uuid.uuid4()))
Пример #13
0
def test_insert_run_start():
    time = ttime.time()
    beamline_id = 'sample_beamline'
    scan_id = 42
    custom = {'foo': 'bar', 'baz': 42,
              'aardvark': ['ants', 3.14]}
    run_start_uid = mdsc.insert_run_start(
        time, beamline_id=beamline_id,
        scan_id=scan_id, uid=str(uuid.uuid4()), **custom)

    run_start_mds, = mdsc.find_run_starts(uid=run_start_uid)

    names = ['time', 'beamline_id', 'scan_id'] + list(custom.keys())
    values = [time, beamline_id, scan_id] + list(custom.values())

    for name, val in zip(names, values):
        assert getattr(run_start_mds, name) == val

    # make sure the metadatstore document raises properly
    check_for_id(run_start_mds)
Пример #14
0
def setup_syn(custom=None):
    if custom is None:
        custom = {}
    data_keys = {k: {'source': k,
                     'dtype': 'number',
                     'shape': None} for k in 'ABCEDEFGHIJKL'
                 }
    scan_id = 1

    # Create a BeginRunEvent that serves as entry point for a run
    rs = mdsc.insert_run_start(scan_id=scan_id, beamline_id='testing',
                              time=ttime.time(),
                              custom=custom, uid=str(uuid.uuid4()))

    # Create an EventDescriptor that indicates the data
    # keys and serves as header for set of Event(s)
    e_desc = mdsc.insert_descriptor(data_keys=data_keys,
                                    time=ttime.time(),
                                    run_start=rs, uid=str(uuid.uuid4()))
    return rs, e_desc, data_keys
Пример #15
0
def test_insert_run_start():
    time = ttime.time()
    beamline_id = 'sample_beamline'
    scan_id = 42
    custom = {'foo': 'bar', 'baz': 42,
              'aardvark': ['ants', 3.14]}
    run_start_uid = mdsc.insert_run_start(
        time, beamline_id=beamline_id,
        scan_id=scan_id, custom=custom, uid=str(uuid.uuid4()))

    run_start_mds, = mdsc.find_run_starts(uid=run_start_uid)

    names = ['time', 'beamline_id', 'scan_id'] + list(custom.keys())
    values = [time, beamline_id, scan_id] + list(custom.values())

    for name, val in zip(names, values):
        assert_equal(getattr(run_start_mds, name), val)

    # make sure the metadatstore document raises properly
    check_for_id(run_start_mds)
Пример #16
0
def image_uid():
    rs = insert_run_start(time=ttime.time(), scan_id=105,
                          owner='stepper', beamline_id='example',
                          uid=str(uuid.uuid4()), cat='meow')
    image_and_scalar.run(run_start_uid=rs)
    return rs