Exemple #1
0
    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
Exemple #2
0
	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