summaryrefslogtreecommitdiff
path: root/test/test_zip.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_zip.py')
-rw-r--r--test/test_zip.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/test_zip.py b/test/test_zip.py
new file mode 100644
index 0000000..21d8b3c
--- /dev/null
+++ b/test/test_zip.py
@@ -0,0 +1,59 @@
+import pytest
+from rpmlint.checks.ZipCheck import ZipCheck
+from rpmlint.filter import Filter
+
+from Testing import CONFIG, get_tested_package
+
+
+@pytest.fixture(scope='function', autouse=True)
+def zipcheck():
+ CONFIG.info = True
+ output = Filter(CONFIG)
+ test = ZipCheck(CONFIG, output)
+ return output, test
+
+
+@pytest.mark.parametrize('package', ['binary/bad-crc-uncompressed'])
+def test_bad_crc_and_compression(tmp_path, package, zipcheck):
+ output, test = zipcheck
+ test.check(get_tested_package(package, tmp_path))
+ out = output.print_results(output.results)
+
+ assert 'bad-crc-in-zip' in out
+ assert 'zip fails the CRC check' in out
+
+ assert 'uncompressed-zip' in out
+ assert 'zip file is not compressed' in out
+
+
+@pytest.mark.parametrize('package', ['binary/asm'])
+def test_classpath_and_index(tmp_path, package, zipcheck):
+ output, test = zipcheck
+ test.check(get_tested_package(package, tmp_path))
+ out = output.print_results(output.results)
+ assert 'class-path-in-manifest' in out
+ assert 'jar contains a hardcoded Class-Path' in out
+
+ assert 'jar-not-indexed' in out
+ assert 'jar file is not indexed' in out
+
+
+@pytest.mark.parametrize('package', ['binary/ruby2.5-rubygem-rubyzip-testsuite'])
+def test_zip1(tmp_path, package, zipcheck):
+ output, test = zipcheck
+ test.check(get_tested_package(package, tmp_path))
+ out = output.print_results(output.results)
+ # these are PW protected not broken so do not error about them
+ assert 'W: unable-to-read-zip' in out
+ # there is a zip with no crc errors
+ assert 'bad-crc-in-zip' not in out
+ # there is zip with only 0 size files, which is not "uncompressed"
+ assert 'uncompressed-zip' not in out
+
+
+@pytest.mark.parametrize('package', ['binary/texlive-codepage-doc'])
+def test_zip2(tmp_path, package, zipcheck):
+ output, test = zipcheck
+ test.check(get_tested_package(package, tmp_path))
+ out = output.print_results(output.results)
+ assert 'W: unable-to-read-zip' in out