UpstreamSource: introduce is_tarball() method
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Mon, 9 Jul 2012 14:19:27 +0000 (17:19 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 14 Nov 2014 12:22:07 +0000 (14:22 +0200)
New method for checking if the sources are a tarball (possibly for
checking if the sources are committable by pristine-tar).

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/pkg/__init__.py
gbp/scripts/common/import_orig.py
tests/06_test_upstream_source.py

index 8c79938..7769fbe 100644 (file)
@@ -251,6 +251,7 @@ class UpstreamSource(object):
     """
     def __init__(self, name, unpacked=None, pkg_policy=PkgPolicy):
         self._orig = False
+        self._tarball = False
         self._pkg_policy = pkg_policy
         self._path = name
         self.unpacked = unpacked
@@ -273,8 +274,10 @@ class UpstreamSource(object):
         """
         if self.is_dir():
             self._orig = False
+            self._tarball = False
             return
 
+        self._tarball = True if self.archive_fmt == 'tar' else False
         self._orig = self._pkg_policy.is_valid_orig_archive(os.path.basename(self.path))
 
     def is_orig(self):
@@ -285,6 +288,13 @@ class UpstreamSource(object):
         """
         return self._orig
 
+    def is_tarball(self):
+        """
+        @return: C{True} if source is a tarball, C{False} otherwise
+        @rtype: C{bool}
+        """
+        return self._tarball
+
     def is_dir(self):
         """
         @return: C{True} if if upstream sources are an unpacked directory,
index d2490b3..80807a6 100644 (file)
@@ -46,7 +46,7 @@ def orig_needs_repack(upstream_source, options):
     """
     if ((options.pristine_tar and options.filter_pristine_tar and len(options.filters) > 0)):
         return True
-    elif not upstream_source.is_orig():
+    elif not upstream_source.is_tarball():
         if len(options.filters):
             return True
         elif options.pristine_tar:
@@ -111,7 +111,7 @@ def ask_package_version(default, ver_validator_func, err_msg):
 def repack_source(source, new_name, unpack_dir, filters, new_prefix=None):
     """Repack the source tree"""
     repacked = source.pack(new_name, filters, new_prefix)
-    if source.is_orig(): # the tarball was filtered on unpack
+    if source.is_tarball(): # the tarball was filtered on unpack
         repacked.unpacked = source.unpacked
     else: # otherwise unpack the generated tarball get a filtered tree
         repacked.unpack(unpack_dir, filters)
index ac210a0..2e9246c 100644 (file)
@@ -24,6 +24,7 @@ class TestDir(unittest.TestCase):
         """Upstream source is a directory"""
         source = UpstreamSource(self.upstream_dir)
         self.assertEqual(source.is_orig(), False)
+        self.assertEqual(source.is_tarball(), False)
         self.assertEqual(source.path, self.upstream_dir)
         self.assertEqual(source.unpacked, self.upstream_dir)
         self.assertEqual(source.guess_version(), ('test', '1.0'))
@@ -59,6 +60,7 @@ class TestTar(unittest.TestCase):
         target = self.tmpdir.join("gbp_0.1.tar.bz2")
         repacked = self.source.pack(target)
         self.assertEqual(repacked.is_orig(), True)
+        self.assertEqual(repacked.is_tarball(), True)
         self.assertEqual(repacked.is_dir(), False)
         self.assertEqual(repacked.guess_version(), ('gbp', '0.1'))
         self._check_tar(repacked, ["gbp/errors.py", "gbp/__init__.py"])
@@ -68,6 +70,7 @@ class TestTar(unittest.TestCase):
         target = self.tmpdir.join("gbp_0.1.tar.bz2")
         repacked = self.source.pack(target, ["__init__.py"])
         self.assertEqual(repacked.is_orig(), True)
+        self.assertEqual(repacked.is_tarball(), True)
         self.assertEqual(repacked.is_dir(), False)
         self._check_tar(repacked, ["gbp/errors.py"],
                                   ["gbp/__init__.py"])
@@ -98,6 +101,7 @@ class TestZip(unittest.TestCase):
     def test_unpack(self):
         source = UpstreamSource(self.zipfile)
         self.assertEqual(source.is_orig(), False)
+        self.assertEqual(source.is_tarball(), False)
         self.assertEqual(source.is_dir(), False)
         self.assertEqual(source.unpacked, None)
         self.assertEqual(source.guess_version(), ('gbp', '0.1'))