def install(self): if not self.is_installed(): try: if not os.path.exists(Tempest.tempest_base_path): Tempest._clone() if not os.path.exists(self.tempest_path): shutil.copytree(Tempest.tempest_base_path, self.tempest_path) subprocess.check_call( "git checkout master; " "git remote update; " "git pull", shell=True, cwd=os.path.join(self.tempest_path, "tempest")) self._install_venv() self._initialize_testr() except subprocess.CalledProcessError as e: self.uninstall() raise exceptions.TempestSetupFailure("failed cmd: '%s'", e.cmd) else: print("Tempest has been successfully installed!") else: print("Tempest is already installed")
def test_setup_failure_on_tempest_installation(self, mock_install, mock_is_installed, mock_is_cfg, mock_mkdir): mock_install.side_effect = exceptions.TempestSetupFailure() benchmark = tempest.Tempest(self.context) self.assertRaises(exceptions.BenchmarkSetupFailure, benchmark.setup) self.assertEqual(0, mock_is_cfg.call_count)