def test_no_results_dir(self, m_logger, run_type, itend, restart_timestep, config): with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (False, False, True, True) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open().__enter__().read.return_value = f"{itend}\n" run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", run_type, arrow.get("2017-11-16"), Path("tmp_run_dir"), itend, restart_timestep, config, ) assert not run_succeeded
def test_no_tracer_stat_file(self, m_logger, config): with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (True, False, True, True) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open().__enter__().read.return_value = "2160\n" m_open.side_effect = FileNotFoundError run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", "nowcast-green", arrow.get("2017-11-16"), Path("tmp_run_dir"), 2160, 2160, config, ) assert "tracer.stat" in m_logger.critical.call_args_list[3][0][0] assert not run_succeeded
def test_no_solver_stat_file( self, m_logger, run_type, itend, restart_timestep, config ): with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (True, False, True, True) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open.side_effect = FileNotFoundError run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", run_type, arrow.get("2017-11-16"), Path("tmp_run_dir"), itend, restart_timestep, config, ) assert "solver.stat" in m_logger.critical.call_args_list[2][0][0] assert not run_succeeded
def test_no_tracers_restart_file(self, m_logger, config): restart_timestep = 2160 with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (True, False, True, False) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open().__enter__().read.return_value = "2160\n" run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", "nowcast-green", arrow.get("2017-11-16"), Path("tmp_run_dir"), 2160, restart_timestep, config, ) expected = f"SalishSea_{restart_timestep:08d}_restart_trc.nc" assert expected in m_logger.critical.call_args[0][0] assert not run_succeeded
def test_nan_in_tracer_stat(self, m_logger, config): with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (True, False, True, True) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open().__enter__().read.return_value = "2160\n" m_open().__enter__().__iter__.return_value = ( "foo bar\n", "it : 43 ssh2: 0.8313118488E+05 Umax: 0.2450101238E+01\n" "43 NaN\n", ) run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", "nowcast-green", arrow.get("2017-11-16"), Path("tmp_run_dir"), 2160, 2160, config, ) assert not run_succeeded
def test_nan_in_solver_stat( self, m_logger, run_type, itend, restart_timestep, config ): with patch("nowcast.workers.watch_NEMO.Path.exists") as m_exists: m_exists.side_effect = (True, False, True, True) with patch("nowcast.workers.watch_NEMO.Path.open") as m_open: m_open().__enter__().read.return_value = f"{itend}\n" m_open().__enter__().__iter__.return_value = ( "foo bar\n", "it : 43 ssh2: NaN Umax: 0.2450101238E+01\n", ) run_succeeded = watch_NEMO._confirm_run_success( "arbutus.cloud", run_type, arrow.get("2017-11-16"), Path("tmp_run_dir"), itend, restart_timestep, config, ) assert not run_succeeded