@Test
public void testGunicorn() throws FileAnalysisException {

  final FileAnalyzer f3 =
      FileAnalyzerFactory.buildFileAnalyzer(
          new File("src/test/resources/gunicorn-19.7.1-py2.py3-none-any.whl"));
  final Map<ConstructId, Construct> c3 = f3.getConstructs();
  /*for(ConstructId cid: c3.keySet())
  System.out.println(cid);*/
  // 1. parse errors happen in the following method. Check it is nevertheless among the identified
  // constructs
  // PY METH [gunicorn.workers._gaiohttp.AiohttpWorker(base.Worker).run(self)]
  final PythonId pack = new PythonId(null, PythonId.Type.PACKAGE, "gunicorn.workers");
  PythonId modu = new PythonId(pack, PythonId.Type.MODULE, "_gaiohttp");
  final PythonId clas = new PythonId(modu, PythonId.Type.CLASS, "AiohttpWorker(base.Worker)");
  final PythonId meth = new PythonId(clas, PythonId.Type.METHOD, "run(self)");
  assertTrue(c3.containsKey(pack));
  assertTrue(c3.containsKey(modu));
  assertTrue(c3.containsKey(clas));
  assertTrue(c3.containsKey(meth));
  // 2. parse errors happen in the following module. Check it is nevertheless among the identified
  // constructs
  //   PY MODU [gunicorn.workers.geventlet]
  modu = new PythonId(pack, PythonId.Type.MODULE, "geventlet");
  assertTrue(c3.containsKey(modu));
  // 3. parse errors happen in the following module. Check it is nevertheless among the identified
  // constructs
  //   PY MODU [gunicorn.workers.ggevent]
  modu = new PythonId(pack, PythonId.Type.MODULE, "ggevent");
  assertTrue(c3.containsKey(modu));
}