Fix version checker failing for qpdf 10.0.0

Fixes #527
This commit is contained in:
James R. Barlow
2020-04-10 13:00:19 -07:00
parent 58ec56180a
commit d13d70fd56
2 changed files with 30 additions and 1 deletions
+2 -1
View File
@@ -23,6 +23,7 @@ import re
import shutil
import sys
from collections.abc import Mapping
from distutils.version import LooseVersion
from functools import lru_cache
from subprocess import PIPE, STDOUT, CalledProcessError
from subprocess import run as subprocess_run
@@ -270,7 +271,7 @@ def check_external_program(
raise MissingDependencyError()
return
if found_version < need_version:
if LooseVersion(found_version) < LooseVersion(need_version):
_error_old_version(program, package, need_version, found_version, required_for)
if not recommended:
raise MissingDependencyError()
+28
View File
@@ -176,3 +176,31 @@ def test_language_warning(caplog):
vd.check_options_languages(opts)
assert opts.language == ['eng']
assert 'assuming --language' in caplog.text
def test_version_comparison():
vd.check_external_program(
program="dummy_basic",
package="dummy",
version_checker=lambda: '9.0',
need_version='8.0.2',
)
vd.check_external_program(
program="dummy_doubledigit",
package="dummy",
version_checker=lambda: '10.0',
need_version='8.0.2',
)
vd.check_external_program(
program="tesseract",
package="tesseract",
version_checker=lambda: '4.0.0-beta.1',
need_version='4.0.0',
)
with pytest.raises(MissingDependencyError):
vd.check_external_program(
program="dummy_fails",
package="dummy",
version_checker=lambda: '1.0',
need_version='2.0',
)