From 1575015a007af55d10999e7784b3c38d57e49afa Mon Sep 17 00:00:00 2001
From: Matthew Mosesohn <mmosesohn@mirantis.com>
Date: Wed, 28 Jan 2015 18:56:45 +0300
Subject: [PATCH] Add lzma extension to known types

---
 lib/debian/debfile.py |  2 +-
 tests/test_debfile.py | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lib/debian/debfile.py b/lib/debian/debfile.py
index 806b831..ae95b8c 100644
--- a/lib/debian/debfile.py
+++ b/lib/debian/debfile.py
@@ -28,7 +28,7 @@ from debian.deb822 import Deb822
 
 DATA_PART = 'data.tar'      # w/o extension
 CTRL_PART = 'control.tar'
-PART_EXTS = ['gz', 'bz2', 'xz']  # possible extensions
+PART_EXTS = ['gz', 'bz2', 'xz', 'lzma']  # possible extensions
 INFO_PART = 'debian-binary'
 MAINT_SCRIPTS = ['preinst', 'postinst', 'prerm', 'postrm', 'config']
 
diff --git a/tests/test_debfile.py b/tests/test_debfile.py
index a10fbe6..08e82a1 100755
--- a/tests/test_debfile.py
+++ b/tests/test_debfile.py
@@ -117,11 +117,13 @@ class TestDebFile(unittest.TestCase):
         self.broken_debname = 'test-broken.deb'
         self.bz2_debname = 'test-bz2.deb'
         self.xz_debname = 'test-xz.deb'
+        self.lzma_debname = 'test-lzma.deb'
         self.uncompressed_debname = 'test-uncompressed.deb'
         uudecode('test.deb.uu', self.debname)
         uudecode('test-broken.deb.uu', self.broken_debname)
         uudecode('test-bz2.deb.uu', self.bz2_debname)
         uudecode('test-xz.deb.uu', self.xz_debname)
+        uudecode('test-lzma.deb.uu', self.lzma_debname)
         uudecode('test-uncompressed.deb.uu', self.uncompressed_debname)
 
         self.debname = 'test.deb'
@@ -138,6 +140,7 @@ class TestDebFile(unittest.TestCase):
         os.unlink(self.broken_debname)
         os.unlink(self.bz2_debname)
         os.unlink(self.xz_debname)
+        os.unlink(self.lzma_debname)
         os.unlink(self.uncompressed_debname)
 
     def test_missing_members(self):
@@ -168,6 +171,14 @@ class TestDebFile(unittest.TestCase):
                          os.path.normpath('./usr/share/locale/bg/'))
         xz_deb.close()
 
+    def test_tar_lzma(self):
+        lzma_deb = debfile.DebFile(self.lzma_debname)
+        # random test on the data part (which is lzma), just to check if we
+        # can access its content
+        self.assertEqual(os.path.normpath(lzma_deb.data.tgz().getnames()[10]),
+                         os.path.normpath('./usr/share/locale/bg/'))
+        lzma_deb.close()
+
     def test_data_names(self):
         """ test for file list equality """ 
         tgz = self.d.data.tgz()
-- 
1.8.3.1
