PipWrapper { public boolean isAvailable() { boolean exists = false; try { final Process p = new ProcessBuilder(this.pathToPip.toString()).start(); final int exit_code = p.waitFor(); exists = exit_code == 0; } catch (IOException ioe) { log.error("Error calling [pip]: " + ioe.getMessage(), ioe); } catch (InterruptedException ie) { log.error("Error calling [pip]: " + ie.getMessage(), ie); } return exists; } PipWrapper();  PipWrapper(Path _path_to_pip, Path _log_dir); boolean isAvailable(); Set<PipInstalledPackage> installPackages(Path _project); Set<PipInstalledPackage> getFreezePackages(); Set<PipInstalledPackage> getListPackages();  }
@Test public void testIsPipAvailable() throws ProcessWrapperException { final PipWrapper pip = new PipWrapper(); final boolean is_available = pip.isAvailable(); }