Beispiel #1
0
 def test_invalid_bad_data_type(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_bad_img_hosting.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('image hosting is turned on, but no img_host_server specified' in messages)
     self.assertTrue('image hosting is turned on, but no host_directory specified' in messages)
Beispiel #2
0
 def test_invalid_missing_project(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_no_project_path.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('no project_path in global options' in messages)
     self.assertTrue('No data_types section found in config'  in messages)
Beispiel #3
0
 def test_invalid_missing_global(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_no_global.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('No global section found in config' in messages)
     self.assertTrue('No simulations section found in config' in messages)
Beispiel #4
0
 def test_invalid_bad_data_type(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_data_job_type.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('atm has no file_format' in messages)
     self.assertTrue('atm has no remote_path' in messages)
     self.assertTrue('atm has no local_path' in messages)
Beispiel #5
0
 def test_invalid_bad_regrid(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_bad_regrid.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('no source_grid_path given for lnd regrid' in messages)
     self.assertTrue('no destination_grid_path given for lnd regrid' in messages)
     self.assertTrue('no destination_grid_name given for lnd regrid' in messages)
     self.assertTrue('regrid is set to run on data_type ocn, but this type is not set in simulation 20180129.DECKv1b_piControl.ne30_oEC.edison' in messages)
Beispiel #6
0
    def test_invalid_bad_transfer(self):
        print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
        config_path = 'tests/test_configs/invalid_config_bad_transfer.cfg'
        config = ConfigObj(config_path)
        messages = verify_config(config)

        self.assertTrue('20180129.DECKv1b_piControl.ne30_oEC.edison is missing trasfer_type, if the data is local, set transfer_type to \'local\'' in messages)
        self.assertTrue('case test.case.2 is set for local data, but no local_path is set' in messages)
        self.assertTrue('no data_types found for test.case.2, set to \'all\' to select all types, or list only data_types desired' in messages)
        self.assertTrue('case test.case.3 has transfer_type of sftp, but is missing remote_hostname' in messages)
        self.assertTrue('case test.case.3 has non-local data, but no remote_path given' in messages)
        self.assertTrue('case test.case.4 has transfer_type of globus, but is missing remote_uuid' in messages)
        self.assertTrue('case test.case.4 is set to use globus, but no local_globus_uuid was set in the global options' in messages)
Beispiel #7
0
    def test_cmor_valid_completed(self):
        """
        tests that a valid config on a completed case will mark itself as
        already being run and not start
        """
        print_message(
            '\n---- Starting Test: {} ----'.format(inspect.stack()[0][3]),
            'ok')
        config = ConfigObj(self.valid_config_path)
        config['post-processing']['cmor']['variable_list'] = [
            config['post-processing']['cmor']['variable_list']
        ]
        case_name = '20180129.DECKv1b_piControl.ne30_oEC.edison'
        case = config['simulations'][case_name]
        messages = verify_config(config)
        self.assertEqual(len(messages), 0)
        config['global']['resource_path'] = 'resources/'
        filemanager = FileManager(config=config, event_list=EventList())
        filemanager.populate_file_list()
        filemanager.update_local_status()

        timeseries = Timeseries(short_name=case['short_name'],
                                case=case_name,
                                start=config['simulations']['start_year'],
                                end=config['simulations']['end_year'],
                                config=config,
                                run_type='atm')
        timeseries.check_data_ready(filemanager=filemanager)
        timeseries.setup_data(config=config,
                              filemanager=filemanager,
                              case=case_name)
        timeseries.execute(config=config, event_list=EventList())
        timeseries.handle_completion(filemanager=filemanager,
                                     config=config,
                                     event_list=EventList())

        cmor = Cmor(short_name=case['short_name'],
                    case=case_name,
                    start=config['simulations']['start_year'],
                    end=config['simulations']['end_year'],
                    config=config)
        cmor.check_data_ready(filemanager=filemanager)
        cmor.setup_data(config=config, filemanager=filemanager, case=case_name)
        self.assertTrue(cmor.postvalidate(config=config))
        self.assertTrue(cmor.execute(config=config, event_list=EventList()))
        self.assertEquals(cmor.status, JobStatus.COMPLETED)
        self.assertTrue(
            cmor.handle_completion(filemanager=filemanager,
                                   event_list=EventList(),
                                   config=config))
Beispiel #8
0
 def test_invalid_bad_job_type(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_bad_job_type.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('20180129.DECKv1b_piControl.ne30_oEC.edison is set to run job beepboop, but this run type is not in either the post-processing or diags config sections' in messages)
Beispiel #9
0
 def test_invalid_missing_comparisons(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_missing_comparisons.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('no comparisons specified' in messages)
Beispiel #10
0
 def test_invalid_missing_climo(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_missing_climo.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('amwg is set to run at frequency 2 but no climo job for this frequency is set' in messages)
Beispiel #11
0
 def test_invalid_missing_lnd_data(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/invalid_config_missing_lnd.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertTrue('20180129.DECKv1b_piControl.ne30_oEC.edison is set to use data_type lnd, but this data type is not in the data_types config option' in messages)
Beispiel #12
0
 def test_valid(self):
     print '\n'; print_message('---- Starting Test: {} ----'.format(inspect.stack()[0][3]), 'ok')
     config_path = 'tests/test_configs/test_amwg_complete.cfg'
     config = ConfigObj(config_path)
     messages = verify_config(config)
     self.assertEquals(len(messages), 0)