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)
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'
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))
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)
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)
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()))
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()))
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)
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()
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()))
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)
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
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)
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