[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