def test_calculator_for_task(self): """Load up a sample calculation (into the db and cache) and make sure we can instantiate the correct calculator for a given calculation id. """ from openquake.calculators.hazard.classical.core import ( ClassicalHazardCalculator) job = engine.prepare_job() job_profile, params, sections = engine.import_job_profile(demo_file( 'simple_fault_demo_hazard/config.gem'), job) job_ctxt = engine.JobContext(params, job.id, oq_job_profile=job_profile, oq_job=job) job_ctxt.to_kvs() with patch( 'openquake.utils.tasks.get_running_job') as grc_mock: # Loading of the JobContext is done by # `get_running_job`, which is covered by other tests. # So, we just want to make sure that it's called here. grc_mock.return_value = job_ctxt calculator = tasks.calculator_for_task(job.id, 'hazard') self.assertTrue(isinstance(calculator, ClassicalHazardCalculator)) self.assertEqual(1, grc_mock.call_count)
def test_calculator_for_task(self): """Load up a sample calculation (into the db and cache) and make sure we can instantiate the correct calculator for a given calculation id. """ from openquake.calculators.hazard.classical.core import ( ClassicalHazardCalculator) job_profile, params, sections = engine.import_job_profile(demo_file( 'simple_fault_demo_hazard/config.gem')) calculation = OqCalculation(owner=job_profile.owner, oq_job_profile=job_profile) calculation.save() calc_proxy = engine.CalculationProxy(params, calculation.id, oq_job_profile=job_profile, oq_calculation=calculation) calc_proxy.to_kvs() with patch( 'openquake.utils.tasks.get_running_calculation') as grc_mock: # Loading of the CalculationProxy is done by # `get_running_calculation`, which is covered by other tests. # So, we just want to make sure that it's called here. grc_mock.return_value = calc_proxy calculator = tasks.calculator_for_task(calculation.id, 'hazard') self.assertTrue(isinstance(calculator, ClassicalHazardCalculator)) self.assertEqual(1, grc_mock.call_count)
def test_calculator_for_task(self): """Load up a sample calculation (into the db and cache) and make sure we can instantiate the correct calculator for a given calculation id. """ from openquake.calculators.hazard.classical.core import ( ClassicalHazardCalculator) job = engine.prepare_job() job_profile, params, sections = engine.import_job_profile( demo_file('simple_fault_demo_hazard/config.gem'), job) job_ctxt = engine.JobContext(params, job.id, oq_job_profile=job_profile, oq_job=job) job_ctxt.to_kvs() with patch('openquake.utils.tasks.get_running_job') as grc_mock: # Loading of the JobContext is done by # `get_running_job`, which is covered by other tests. # So, we just want to make sure that it's called here. grc_mock.return_value = job_ctxt calculator = tasks.calculator_for_task(job.id, 'hazard') self.assertTrue(isinstance(calculator, ClassicalHazardCalculator)) self.assertEqual(1, grc_mock.call_count)
def compute_risk(calculation_id, block_id, **kwargs): """A task for computing risk, calls the compute_risk method defined in the chosen risk calculator. The calculator used is determined by the calculation configuration's calculation mode (i.e., classical, event_based, etc.). """ calculator = calculator_for_task(calculation_id, 'risk') return calculator.compute_risk(block_id, **kwargs)
def compute_risk(job_id, block_id, **kwargs): """A task for computing risk, calls the compute_risk method defined in the chosen risk calculator. The calculator used is determined by the calculation configuration's calculation mode (i.e., classical, event_based, etc.). """ calculator = calculator_for_task(job_id, 'risk') return calculator.compute_risk(block_id, **kwargs)
def compute_ground_motion_fields(job_id, sites, history, realization, seed): """ Generate ground motion fields """ calculator = utils_tasks.calculator_for_task(job_id, 'hazard') calculator.compute_ground_motion_fields( sites, history, realization, seed)
def compute_ground_motion_fields(job_id, sites, history, realization, seed): """ Generate ground motion fields """ calculator = utils_tasks.calculator_for_task(job_id, 'hazard') calculator.compute_ground_motion_fields(sites, history, realization, seed)
def compute_hazard_curve(job_id, sites, realization): """ Generate hazard curve for the given site list.""" calculator = utils_tasks.calculator_for_task(job_id, 'hazard') keys = calculator.compute_hazard_curve(sites, realization) return keys