def setup_watcher(self): self.watcher = StateChangeWatcher() self.state_manager = mock.create_autospec(PersistentStateManager) self.watcher.state_manager = self.state_manager
class StateChangeWatcherTestCase(TestCase): @setup def setup_watcher(self): self.watcher = StateChangeWatcher() self.state_manager = mock.create_autospec(PersistentStateManager) self.watcher.state_manager = self.state_manager def test_update_from_config_no_change(self): self.watcher.config = state_config = mock.Mock() assert not self.watcher.update_from_config(state_config) autospec_method(self.watcher.shutdown) assert_equal(self.watcher.state_manager, self.state_manager) assert not self.watcher.shutdown.mock_calls @mock.patch( 'tron.serialize.runstate.statemanager.PersistenceManagerFactory', autospec=True, ) def test_update_from_config_changed(self, mock_factory): state_config = mock.Mock() autospec_method(self.watcher.shutdown) assert self.watcher.update_from_config(state_config) assert_equal(self.watcher.config, state_config) self.watcher.shutdown.assert_called_with() assert_equal( self.watcher.state_manager, mock_factory.from_config.return_value, ) mock_factory.from_config.assert_called_with(state_config) def test_save_job(self): mock_job = mock.Mock() self.watcher.save_job(mock_job) self.watcher.state_manager.save.assert_called_with( runstate.JOB_STATE, mock_job.name, mock_job.state_data, ) def test_save_service(self): mock_service = mock.Mock() self.watcher.save_service(mock_service) self.watcher.state_manager.save.assert_called_with( runstate.SERVICE_STATE, mock_service.name, mock_service.state_data, ) def test_save_metadata(self): patcher = mock.patch( 'tron.serialize.runstate.statemanager.StateMetadata', ) with patcher as mock_state_metadata: self.watcher.save_metadata() meta_data = mock_state_metadata.return_value self.watcher.state_manager.save.assert_called_with( runstate.MCP_STATE, meta_data.name, meta_data.state_data, ) def test_shutdown(self): self.watcher.shutdown() assert not self.watcher.state_manager.enabled self.watcher.state_manager.cleanup.assert_called_with() def test_disabled(self): context = self.watcher.disabled() assert_equal(self.watcher.state_manager.disabled.return_value, context) def test_restore(self): jobs, services = mock.Mock(), mock.Mock() self.watcher.restore(jobs, services) self.watcher.state_manager.restore.assert_called_with(jobs, services)
class TestStateChangeWatcher(TestCase): @setup def setup_watcher(self): self.watcher = StateChangeWatcher() self.state_manager = mock.create_autospec(PersistentStateManager) self.watcher.state_manager = self.state_manager def test_update_from_config_no_change(self): self.watcher.config = state_config = mock.Mock() assert not self.watcher.update_from_config(state_config) autospec_method(self.watcher.shutdown) assert_equal(self.watcher.state_manager, self.state_manager) assert not self.watcher.shutdown.mock_calls @mock.patch( 'tron.serialize.runstate.statemanager.PersistenceManagerFactory', autospec=True, ) def test_update_from_config_changed(self, mock_factory): state_config = mock.Mock() autospec_method(self.watcher.shutdown) assert self.watcher.update_from_config(state_config) assert_equal(self.watcher.config, state_config) self.watcher.shutdown.assert_called_with() assert_equal( self.watcher.state_manager, mock_factory.from_config.return_value, ) mock_factory.from_config.assert_called_with(state_config) def test_save_job(self): mock_job = mock.Mock() self.watcher.save_job(mock_job) self.watcher.state_manager.save.assert_called_with( runstate.JOB_STATE, mock_job.name, mock_job.state_data, ) @mock.patch( 'tron.serialize.runstate.statemanager.StateMetadata', autospec=None ) def test_save_metadata(self, mock_state_metadata): self.watcher.save_metadata() meta_data = mock_state_metadata.return_value self.watcher.state_manager.save.assert_called_with( runstate.MCP_STATE, meta_data.name, meta_data.state_data, ) def test_shutdown(self): self.watcher.shutdown() assert not self.watcher.state_manager.enabled self.watcher.state_manager.cleanup.assert_called_with() def test_disabled(self): context = self.watcher.disabled() assert_equal(self.watcher.state_manager.disabled.return_value, context) def test_restore(self): jobs = mock.Mock() self.watcher.restore(jobs) self.watcher.state_manager.restore.assert_called_with(jobs)