[Reproducible-commits] [diffoscope] 05/11: Fix fallback code used when rpm module is unavailable

Jérémy Bobbio lunar at moszumanska.debian.org
Sat Nov 7 16:29:01 UTC 2015


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch master
in repository diffoscope.

commit 97d00098e31cd4861001d441e0079e3093d7d9ee
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Sat Nov 7 16:32:26 2015 +0100

    Fix fallback code used when rpm module is unavailable
    
    The 'rpm-python' is compiled through the rpm source and not
    available on PyPI. Let's make sure that we can do without it
    so diffoscope can eventually be published on PyPI.
---
 diffoscope/comparators/rpm_fallback.py |  2 +-
 tests/comparators/test_rpm.py          | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/diffoscope/comparators/rpm_fallback.py b/diffoscope/comparators/rpm_fallback.py
index 9e86fd3..9ced3bd 100644
--- a/diffoscope/comparators/rpm_fallback.py
+++ b/diffoscope/comparators/rpm_fallback.py
@@ -27,7 +27,7 @@ class AbstractRpmFile(File):
     def recognizes(file):
         return AbstractRpmFile.RE_FILE_TYPE.search(file.magic_file_type)
 
-class RpmFile(File):
+class RpmFile(AbstractRpmFile):
     def compare(self, other, source=None):
         difference = self.compare_bytes(other)
         if not difference:
diff --git a/tests/comparators/test_rpm.py b/tests/comparators/test_rpm.py
index a384485..5cc8d84 100644
--- a/tests/comparators/test_rpm.py
+++ b/tests/comparators/test_rpm.py
@@ -21,7 +21,12 @@ import os.path
 import pytest
 from diffoscope.comparators import specialize
 from diffoscope.comparators.binary import FilesystemFile, NonExistingFile
-from diffoscope.comparators.rpm import RpmFile
+try:
+    from diffoscope.comparators.rpm import RpmFile
+    miss_rpm_module = False
+except ImportError:
+    from diffoscope.comparators.rpm_fallback import RpmFile
+    miss_rpm_module = True
 from diffoscope.config import Config
 from conftest import tool_missing
 
@@ -39,6 +44,7 @@ def rpm2():
 def test_identification(rpm1):
     assert isinstance(rpm1, RpmFile)
 
+ at pytest.mark.skipif(miss_rpm_module, reason='rpm module is not installed')
 def test_no_differences(rpm1):
     difference = rpm1.compare(rpm1)
     assert difference is None
@@ -47,12 +53,14 @@ def test_no_differences(rpm1):
 def differences(rpm1, rpm2):
     return rpm1.compare(rpm2).details
 
+ at pytest.mark.skipif(miss_rpm_module, reason='rpm module is not installed')
 @pytest.mark.skipif(tool_missing('rpm2cpio'), reason='missing rpm2cpio')
 def test_header(differences):
     assert differences[0].source1 == 'header'
     expected_diff = open(os.path.join(os.path.dirname(__file__), '../data/rpm_header_expected_diff')).read()
     assert differences[0].unified_diff == expected_diff
 
+ at pytest.mark.skipif(miss_rpm_module, reason='rpm module is not installed')
 @pytest.mark.skipif(tool_missing('rpm2cpio'), reason='missing rpm2cpio')
 def test_listing(differences):
     assert differences[1].source1 == 'content'
@@ -60,6 +68,7 @@ def test_listing(differences):
     expected_diff = open(os.path.join(os.path.dirname(__file__), '../data/rpm_listing_expected_diff')).read()
     assert differences[1].details[0].unified_diff == expected_diff
 
+ at pytest.mark.skipif(miss_rpm_module, reason='rpm module is not installed')
 @pytest.mark.skipif(tool_missing('rpm2cpio'), reason='missing rpm2cpio')
 def test_content(differences):
     assert differences[1].source1 == 'content'
@@ -67,6 +76,7 @@ def test_content(differences):
     expected_diff = open(os.path.join(os.path.dirname(__file__), '../data/text_ascii_expected_diff')).read()
     assert differences[1].details[1].unified_diff == expected_diff
 
+ at pytest.mark.skipif(miss_rpm_module, reason='rpm module is not installed')
 def test_compare_non_existing(monkeypatch, rpm1):
     monkeypatch.setattr(Config.general, 'new_file', True)
     difference = rpm1.compare(NonExistingFile('/nonexisting', rpm1))

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git



More information about the Reproducible-commits mailing list