def test_build_3Experiments_config(self): # script verifies the presence of a folder, not its contents. # for the script to work, let's run it on default save directory MantidDir = os.path.split(os.path.realpath(__file__))[0] HomeRootDir = self.get_save_dir() mcf = MantidConfigDirectInelastic(MantidDir,HomeRootDir,self.UserScriptRepoDir,self.MapMaskDir) user = UserProperties() user.set_user_properties(self.instrument,self.start_date,self.cycle,self.rbdir) rbnum2='RB1999000' targetDir = self.get_save_dir() rbdir2 = os.path.join(targetDir,self.userID,rbnum2) if not os.path.exists(rbdir2): os.makedirs(rbdir2) user.set_user_properties('MARI','20000124','CYCLE20001',rbdir2) rbnum3='RB1204000' rbdir3 = os.path.join(targetDir,self.userID,rbnum3) if not os.path.exists(rbdir3): os.makedirs(rbdir3) user.set_user_properties('MAPS','20041207','CYCLE20044',rbdir3) # clear up the previous if os.path.exists(os.path.join(self.userRootDir,'.mantid')): shutil.rmtree(os.path.join(self.userRootDir,'.mantid')) mcf.init_user(self.userID,user) fake_source=self.makeFakeSourceReductionFile(mcf) self.assertEqual(len(mcf._dynamic_configuration),6) self.assertEqual(mcf._dynamic_configuration[1],'default.instrument=MERLIN') mcf.generate_config() config_file = os.path.join(self.userRootDir,'.mantid','Mantid.user.properties') self.assertTrue(os.path.exists(os.path.join(self.userRootDir,'.mantid'))) self.assertTrue(os.path.exists(config_file)) self.assertFalse(mcf.config_need_replacing(config_file)) start_date = user.get_start_date() date_in_apast=datetime.date(start_date.year,start_date.month,start_date.day-1) time_in_a_past = time.mktime(date_in_apast.timetuple()) os.utime(config_file,(time_in_a_past,time_in_a_past)) self.assertTrue(mcf.config_need_replacing(config_file)) #-------------------------------------------------------------------- user1ID = 'tuf299966' user1RootDir = os.path.join(self.get_save_dir(),user1ID) if not os.path.exists(user1RootDir): os.makedirs(user1RootDir) # user1 = UserProperties() user1.set_user_properties('MARI','20990124','CYCLE20991',rbdir2) mcf.init_user(user1ID,user1) source_file = self.makeFakeSourceReductionFile(mcf) mcf.generate_config() self.assertEqual(len(mcf._dynamic_configuration),6) self.assertEqual(mcf._dynamic_configuration[1],'default.instrument=MARI') config_file = os.path.join(self.userRootDir,'.mantid','Mantid.user.properties') self.assertTrue(os.path.exists(os.path.join(user1RootDir,'.mantid'))) self.assertTrue(os.path.exists(config_file)) # # Check sample reduction file # full_rb_path = rbdir2 cycle_id = user1.get_last_cycleID() instr = user1.get_last_instrument() target_file = mcf._target_reduction_file(instr,cycle_id) full_target_file = os.path.join(full_rb_path,target_file) self.assertTrue(os.path.exists(full_target_file)) # Fresh target file should always be replaced self.assertTrue(mcf.script_need_replacing(source_file,full_target_file)) # modify target file access time: access_time = os.path.getmtime(full_target_file) now = time.time() os.utime(full_target_file,(access_time ,now)) # should not replace modified target file self.assertFalse(mcf.script_need_replacing(source_file,full_target_file)) #-------------------------------------------------------------------- # clean up if os.path.exists(os.path.join(self.userRootDir,'.mantid')): shutil.rmtree(os.path.join(self.userRootDir,'.mantid'),ignore_errors=True) if os.path.exists(rbdir2): shutil.rmtree(rbdir2,ignore_errors=True) if os.path.exists(rbdir3): shutil.rmtree(rbdir3,ignore_errors=True) if os.path.exists(user1RootDir): shutil.rmtree(user1RootDir,ignore_errors=True)