]> git.ipfire.org Git - pakfire.git/blobdiff - pakfire/builder.py
Add an automatic install test to see if we could install the built packages.
[pakfire.git] / pakfire / builder.py
index 8eee69711d01508e2fe68690eedf3bb6f0d7c070..1beeca011651f62d7c3c87437c1b3be2977fb4ed 100644 (file)
@@ -182,15 +182,40 @@ class Builder(object):
                """
                        Install everything that is required in requires.
                """
+               # If we got nothing to do, we quit immediately.
+               if not requires:
+                       return
+
                ds = depsolve.DependencySet(self.pakfire)
                for r in requires:
-                       ds.add_requires(r)
+                       if isinstance(r, packages.BinaryPackage):
+                               ds.add_package(r)
+                       else:
+                               ds.add_requires(r)
                ds.resolve()
                ds.dump()
 
                ts = transaction.Transaction(self.pakfire, ds)
                ts.run()
 
+       def install_test(self):
+               pkgs = []
+
+               # Connect packages to the FS repository.
+               r = repository.FileSystemRepository(self.pakfire)
+
+               for dir, subdirs, files in os.walk(self.chrootPath("result")):
+                       for file in files:
+                               file = os.path.join(dir, file)
+
+                               if not file.endswith(PACKAGE_EXTENSION):
+                                       continue
+
+                               p = packages.BinaryPackage(self.pakfire, r, file)
+                               pkgs.append(p)
+
+               self.install(pkgs)
+
        @property
        def log(self):
                # XXX for now, return the root logger