def setUp(self): super(RSRSettingsVerifierTest, self).setUp() self.deployment_host_config = CIDeploymentHostConfig.for_test() self.deployment_config = RSRDeploymentConfig.create_with( self.deployment_host_config) self.mock_settings_reader = self.mox.CreateMock(DjangoSettingsReader) self.mock_host_file_system = self.mox.CreateMock(FileSystem) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.settings_verifier = RSRSettingsVerifier( self.deployment_host_config, self.deployment_config, self.mock_settings_reader, self.mock_host_file_system, self.mock_feedback)
def _verify_instance_creation_for(self, host_controller_class): mock_host_controller = self.mox.CreateMock(host_controller_class) mock_host_controller.feedback = self.mock_feedback mock_host_controller.sudo('chmod a+w %s' % self.deployment_config.log_file_path) self.mox.ReplayAll() self.assertIsInstance(RSRSettingsVerifier.create_with(self.deployment_host_config, mock_host_controller), RSRSettingsVerifier)
def create_with(database_credentials, deployment_host_config, host_controller): return DatabaseHost( RSRSettingsVerifier.create_with(deployment_host_config, host_controller), RSRDatabaseConfig(database_credentials, deployment_host_config.rsr_database_name), DatabaseAdmin.create_with(database_credentials, deployment_host_config, host_controller))
def setUp(self): super(RSRSettingsVerifierTest, self).setUp() self.deployment_host_config = CIDeploymentHostConfig.for_test() self.deployment_config = RSRDeploymentConfig.create_with(self.deployment_host_config) self.mock_settings_reader = self.mox.CreateMock(DjangoSettingsReader) self.mock_host_file_system = self.mox.CreateMock(FileSystem) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.settings_verifier = RSRSettingsVerifier(self.deployment_host_config, self.deployment_config, self.mock_settings_reader, self.mock_host_file_system, self.mock_feedback)
def _verify_instance_creation_for(self, host_controller_class): mock_host_controller = self.mox.CreateMock(host_controller_class) mock_host_controller.feedback = self.mock_feedback mock_host_controller.sudo('chmod a+w %s' % self.deployment_config.log_file_path) self.mox.ReplayAll() self.assertIsInstance( RSRSettingsVerifier.create_with(self.deployment_host_config, mock_host_controller), RSRSettingsVerifier)
def create_with(database_credentials, deployment_host_config, host_controller): return DatabaseHost(RSRSettingsVerifier.create_with(deployment_host_config, host_controller), RSRDatabaseConfig(database_credentials, deployment_host_config.rsr_database_name), DatabaseAdmin.create_with(database_credentials, deployment_host_config, host_controller))
class RSRSettingsVerifierTest(mox.MoxTestBase): def setUp(self): super(RSRSettingsVerifierTest, self).setUp() self.deployment_host_config = CIDeploymentHostConfig.for_test() self.deployment_config = RSRDeploymentConfig.create_with( self.deployment_host_config) self.mock_settings_reader = self.mox.CreateMock(DjangoSettingsReader) self.mock_host_file_system = self.mox.CreateMock(FileSystem) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.settings_verifier = RSRSettingsVerifier( self.deployment_host_config, self.deployment_config, self.mock_settings_reader, self.mock_host_file_system, self.mock_feedback) def test_can_create_instance_for_local_deployment_host(self): """fab.tests.verifiers.rsr_settings_verifier_test Can create an RSRSettingsVerifier instance for a local deployment host""" self._verify_instance_creation_for(LocalHostController) def test_can_create_instance_for_remote_deployment_host(self): """fab.tests.verifiers.rsr_settings_verifier_test Can create an RSRSettingsVerifier instance for a remote deployment host""" self._verify_instance_creation_for(RemoteHostController) def _verify_instance_creation_for(self, host_controller_class): mock_host_controller = self.mox.CreateMock(host_controller_class) mock_host_controller.feedback = self.mock_feedback mock_host_controller.sudo('chmod a+w %s' % self.deployment_config.log_file_path) self.mox.ReplayAll() self.assertIsInstance( RSRSettingsVerifier.create_with(self.deployment_host_config, mock_host_controller), RSRSettingsVerifier) def test_will_exit_if_local_rsr_settings_not_deployed(self): """fab.tests.verifiers.rsr_settings_verifier_test Will exit if local RSR settings have not been deployed""" self.mock_host_file_system.exit_if_directory_does_not_exist( self.deployment_config.host_config_home) self.mock_host_file_system.exit_if_file_does_not_exist( self.deployment_config.deployed_rsr_settings_file) self.mox.ReplayAll() self.settings_verifier.exit_if_local_rsr_settings_not_deployed() def test_will_exit_if_settings_do_not_match_expected_database_name(self): """fab.tests.verifiers.rsr_settings_verifier_test Will exit if deployed settings do not match expected database name""" mismatched_database_settings_message = 'Cannot deploy to database [%s] when deployed RSR settings use [deployed_database_name]' % \ self.deployment_host_config.rsr_database_name self.mock_settings_reader.rsr_database_name().AndReturn( 'deployed_database_name') self.mock_feedback.abort( mismatched_database_settings_message).AndRaise( SystemExit(mismatched_database_settings_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit) as raised: self.settings_verifier.exit_if_settings_have_mismatched_database_name( ) self.assertEqual(mismatched_database_settings_message, raised.exception.message) def test_will_confirm_if_deployment_database_name_matches_expected_database_name_from_settings( self): """fab.tests.verifiers.rsr_settings_verifier_test Will confirm if deployment database name matches expected database name from settings""" self.mock_settings_reader.rsr_database_name().AndReturn( self.deployment_host_config.rsr_database_name) self.mock_feedback.comment('Deployment database name matches expected RSR database name in settings: %s' % \ self.deployment_host_config.rsr_database_name) self.mox.ReplayAll() self.settings_verifier.exit_if_settings_have_mismatched_database_name()
class RSRSettingsVerifierTest(mox.MoxTestBase): def setUp(self): super(RSRSettingsVerifierTest, self).setUp() self.deployment_host_config = CIDeploymentHostConfig.for_test() self.deployment_config = RSRDeploymentConfig.create_with(self.deployment_host_config) self.mock_settings_reader = self.mox.CreateMock(DjangoSettingsReader) self.mock_host_file_system = self.mox.CreateMock(FileSystem) self.mock_feedback = self.mox.CreateMock(ExecutionFeedback) self.settings_verifier = RSRSettingsVerifier(self.deployment_host_config, self.deployment_config, self.mock_settings_reader, self.mock_host_file_system, self.mock_feedback) def test_can_create_instance_for_local_deployment_host(self): """fab.tests.verifiers.rsr_settings_verifier_test Can create an RSRSettingsVerifier instance for a local deployment host""" self._verify_instance_creation_for(LocalHostController) def test_can_create_instance_for_remote_deployment_host(self): """fab.tests.verifiers.rsr_settings_verifier_test Can create an RSRSettingsVerifier instance for a remote deployment host""" self._verify_instance_creation_for(RemoteHostController) def _verify_instance_creation_for(self, host_controller_class): mock_host_controller = self.mox.CreateMock(host_controller_class) mock_host_controller.feedback = self.mock_feedback mock_host_controller.sudo('chmod a+w %s' % self.deployment_config.log_file_path) self.mox.ReplayAll() self.assertIsInstance(RSRSettingsVerifier.create_with(self.deployment_host_config, mock_host_controller), RSRSettingsVerifier) def test_will_exit_if_local_rsr_settings_not_deployed(self): """fab.tests.verifiers.rsr_settings_verifier_test Will exit if local RSR settings have not been deployed""" self.mock_host_file_system.exit_if_directory_does_not_exist(self.deployment_config.host_config_home) self.mock_host_file_system.exit_if_file_does_not_exist(self.deployment_config.deployed_rsr_settings_file) self.mox.ReplayAll() self.settings_verifier.exit_if_local_rsr_settings_not_deployed() def test_will_exit_if_settings_do_not_match_expected_database_name(self): """fab.tests.verifiers.rsr_settings_verifier_test Will exit if deployed settings do not match expected database name""" mismatched_database_settings_message = 'Cannot deploy to database [%s] when deployed RSR settings use [deployed_database_name]' % \ self.deployment_host_config.rsr_database_name self.mock_settings_reader.rsr_database_name().AndReturn('deployed_database_name') self.mock_feedback.abort(mismatched_database_settings_message).AndRaise(SystemExit(mismatched_database_settings_message)) self.mox.ReplayAll() with self.assertRaises(SystemExit) as raised: self.settings_verifier.exit_if_settings_have_mismatched_database_name() self.assertEqual(mismatched_database_settings_message, raised.exception.message) def test_will_confirm_if_deployment_database_name_matches_expected_database_name_from_settings(self): """fab.tests.verifiers.rsr_settings_verifier_test Will confirm if deployment database name matches expected database name from settings""" self.mock_settings_reader.rsr_database_name().AndReturn(self.deployment_host_config.rsr_database_name) self.mock_feedback.comment('Deployment database name matches expected RSR database name in settings: %s' % \ self.deployment_host_config.rsr_database_name) self.mox.ReplayAll() self.settings_verifier.exit_if_settings_have_mismatched_database_name()