def test(self): # Parse spec file self.sp_obj = SpecParser(self.spec) if not self.sp_obj.parse(): self.err = self.sp_obj.getError() return False # Parse sources file if self.sources != "": self.src_obj = Sources(self.sources) if not self.src_obj.parse(): self.err = self.src_obj.getError() return False # Inspect tarball self.prj_obj = ProjectInfo(noGodeps=self.noGodeps) # create a temp directory dir = tempfile.mkdtemp() # extract tarball to the directory so, se, rc = runCommand("tar -xf %s --directory=%s" % (self.archive, dir)) if rc != 0: self.err = se return False so, se, rc = runCommand("ls %s" % dir) if rc != 0: self.err = "Unable to archive's extracted folder" return False so = so.split('\n')[0] if not self.prj_obj.retrieve("%s/%s" % (dir, so), skip_errors=True): self.err = self.prj_obj.getError() return False shutil.rmtree(dir) tests = [] # test package name tests.append(self.testPackageName) # test commit tests.append(self.testCommit) # test import path macros tests.append(self.testImportPathMacros) # test provider, provider_tld, ... tests.append(self.testRepositoryMacros) # test source0 macro tests.append(self.testSpecFileSource) # test devel subpackage tests.append(self.testDevel) for test in tests: if not test(): self.printTResult(self.t_result) elif self.verbose: self.printTResult(self.t_result) return True
def test(self, source_code_directory = ""): # Parse spec file self.sp_obj = SpecParser(self.spec) if not self.sp_obj.parse(): self.err = self.sp_obj.getError() return False # Parse sources file if self.sources != "": self.src_obj = Sources(self.sources) if not self.src_obj.parse(): self.err = self.src_obj.getError() return False if source_code_directory == "": # create a temp directory dir = tempfile.mkdtemp() # extract tarball to the directory so, se, rc = runCommand("tar -xf %s --directory=%s" % (self.archive, dir)) if rc != 0: self.err = se return False so, se, rc = runCommand("ls %s" % dir) if rc != 0: self.err = "Unable to archive's extracted folder" return False sc_directory = "%s/%s" % (dir, so.split('\n')[0]) else: sc_directory = source_code_directory data = { "type": "user_directory", "resource": path.abspath(sc_directory), #"directories_to_skip": self.noGodeps, "ipprefix": "." } try: data = ActFactory().bake("go-code-inspection").call(data) except Exception as e: logging.error(e) exit(1) # TODO(jchaloup) catch exceptions, at least ValueError self.prj_info.construct(data[ARTEFACT_GOLANG_PROJECT_PACKAGES]) if source_code_directory == "": shutil.rmtree(dir) tests = [] # test package name tests.append(self.testPackageName) # test commit tests.append(self.testCommit) # test import path macros tests.append(self.testImportPathMacros) # test provider, provider_tld, ... tests.append(self.testRepositoryMacros) # test source0 macro tests.append(self.testSpecFileSource) # test devel subpackage tests.append(self.testDevel) for test in tests: if not test(): self.printTResult(self.t_result) elif self.verbose: self.printTResult(self.t_result) return True