def test_finalize_updated(self, tmp_path): p = utilities.yaml_from_dict(tmp_path, 'input.yaml') _delta = DeltaModel(input_file=p) # mock the top-level _delta.log_info = mock.MagicMock() _delta.output_data = mock.MagicMock() _delta.output_checkpoint = mock.MagicMock() # modify the save interval _t = 5 _delta._save_dt = _t * _delta._dt _delta._checkpoint_dt = _t * _delta._dt # run a mock update / save _delta._time = _t * _delta._dt _delta._save_iter += int(1) _delta._save_time_since_data = 0 _delta._save_time_since_checkpoint = 0 # run finalize _delta.finalize() # assert calls # should only hit top-levels assert _delta.log_info.call_count == 2 assert _delta.output_data.call_count == 0 assert _delta.output_checkpoint.call_count == 0 assert _delta._is_finalized is True
def test_save_no_figs_no_grids(self, tmp_path): p = utilities.yaml_from_dict(tmp_path, 'input.yaml', {'save_dt': 1}) _delta = DeltaModel(input_file=p) # mock the log_info _delta.log_info = mock.MagicMock() # mock the actual output routines _delta.make_figure = mock.MagicMock() _delta.save_figure = mock.MagicMock() _delta.save_grids = mock.MagicMock() # check nothing created at the start _delta.make_figure.call_count == 0 _delta.save_figure.call_count == 0 _delta.save_grids.call_count == 0 # update the delta a few times for _t in range(0, 4): _delta._time = (_t * _delta._dt) _delta.save_grids_and_figs() # check nothing after a number of iterations, greater than dt assert _delta._time > _delta.save_dt _delta.make_figure.call_count == 0 _delta.save_figure.call_count == 0 _delta.save_grids.call_count == 0
def test_records_arbitrary_time_values(self, tmp_path, capsys): """ This test should create the log, and then print nothing at all. """ file_name = 'user_parameters.yaml' p, f = utilities.create_temporary_file(tmp_path, file_name) utilities.write_parameter_to_file(f, 'out_dir', tmp_path / 'out_dir') f.close() _delta = DeltaModel(input_file=p) _delta.logger = mock.MagicMock() # change values _delta._time = 3.14159 _delta._time_iter = 42 _delta.log_model_time() # will record whatever value is in _delta _calls = [mock.call('Time: 3.1; timestep: 42')] _delta.logger.info.assert_has_calls(_calls)