def test_install_install_error(self): from reddwarf.guestagent import pkg self.mySqlApp.start_mysql = Mock() self.mySqlApp.stop_mysql = Mock() self.mySqlApp.is_installed = Mock(return_value=False) self.mySqlApp._install_mysql = \ Mock(side_effect=pkg.PkgPackageStateError("Install error")) self.assertRaises(pkg.PkgPackageStateError, self.mySqlApp.install_if_needed) self.assert_reported_status(ServiceStatuses.NEW)
def test_secure_write_conf_error(self): from reddwarf.guestagent import pkg self.mySqlApp.start_mysql = Mock() self.mySqlApp.stop_mysql = Mock() self.mySqlApp._write_mycnf = \ Mock(side_effect=pkg.PkgPackageStateError("Install error")) self.mysql_stops_successfully() self.mysql_starts_successfully() dbaas.create_engine = Mock() self.assertRaises(pkg.PkgPackageStateError, self.mySqlApp.secure, 100) self.assertTrue(self.mySqlApp.stop_mysql.called) self.assertTrue(self.mySqlApp._write_mycnf.called) self.assert_reported_status(ServiceStatuses.NEW)
def test_secure_with_mycnf_error(self): mock_conn = mock_sql_connection() when(mock_conn).execute(any()).thenReturn(None) when(utils).execute_with_timeout("sudo", any(str), "stop").thenReturn(None) when(pkg).pkg_install("dbaas-mycnf", any()).thenRaise( pkg.PkgPackageStateError("Install error")) # skip writing the file for now when(os.path).isfile(any()).thenReturn(False) mock_status = mock(MySqlAppStatus) when(mock_status).wait_for_real_status_to_change_to( any(), any(), any()).thenReturn(True) app = MySqlApp(mock_status) self.assertRaises(pkg.PkgPackageStateError, app.secure, 2048) verify(mock_conn, atleast=2).execute(any()) inorder.verify(mock_status).wait_for_real_status_to_change_to( ServiceStatuses.SHUTDOWN, any(), any()) verifyNoMoreInteractions(mock_status)