def test_validate_dark_varying_exposure_and_expire_time(self): # extend case of test_qualified_dark. Iterate over different exposure_time and expire_time directly dark_scan_list, expire_time = [], 11. self.assertEqual(validate_dark(0.1, expire_time,dark_scan_list), None) time_now = time.time() dark_scan_list = [] self.assertTrue(os.path.isfile(glbl.dk_yaml)) for i in range(3): dark_def = (str(uuid.uuid1()), 0.1, time_now-1200+600*(i)) dark_scan_list.append(dark_def) # should return None if no valid items are found expire_time = 0. light_cnt_time = 0.1 self.assertEqual(validate_dark(light_cnt_time, expire_time,dark_scan_list), None) expire_time = 1000. light_cnt_time = 3. self.assertEqual(validate_dark(light_cnt_time, expire_time,dark_scan_list), None) # find the most recent one dark_uid = dark_scan_list[-1][0] light_cnt_time = 0.1 expire_time = 11. self.assertEqual(validate_dark(light_cnt_time, expire_time,dark_scan_list), dark_uid) # should still find the most recent one, even though there is more than one valid one dark_uid = dark_scan_list[-1][0] expire_time = 22. self.assertEqual(validate_dark(light_cnt_time, expire_time,dark_scan_list), dark_uid) # now find one that is in time but lower down the list because it has a different count time for i in range(3): dark_def = (str(uuid.uuid1()), 0.1*(i+1), time_now-1200+600*(i)) dark_scan_list.append(dark_def) test_list = copy.copy(dark_scan_list) dark_uid = dark_scan_list[-2][0] expire_time = 22. light_cnt_time = 0.2 self.assertEqual(validate_dark(light_cnt_time, expire_time,dark_scan_list), dark_uid)
def _unittest_prun(sample,scan,**kwargs): '''on this 'sample' run this 'scan' this function doesn't control shutter nor trigger run engine. It is designed to test functionality Arguments: sample - sample metadata object scan - scan metadata object **kwargs - dictionary that will be passed through to the run-engine metadata ''' scan.md.update({'xp_isprun':True}) light_cnt_time = scan.md['sc_params']['exposure'] expire_time = glbl.dk_window dark_field_uid = validate_dark(light_cnt_time, expire_time) if not dark_field_uid: dark_field_uid = 'can not find a qualified dark uid' scan.md['sc_params'].update({'dk_field_uid': dark_field_uid}) scan.md['sc_params'].update({'dk_window':expire_time}) return scan.md