diff options
Diffstat (limited to 'test/test_zip.py')
-rw-r--r-- | test/test_zip.py | 59 |
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 |