diff --git a/tests/test_util.py b/tests/test_util.py index 6f4cefd..87ae622 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -3,8 +3,9 @@ import os import zipfile, json, gzip, hashlib from io import BytesIO +from unittest.mock import patch -from wacz.util import hash_stream, validateJSON +from wacz.util import get_py_wacz_version, hash_stream, validateJSON TEST_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "fixtures") @@ -30,6 +31,12 @@ def test_util_validate_json_fail(self): """validate json method should fail with valid json""" self.assertFalse(validateJSON('test": "test"}')) + def test_get_py_wacz_version(self): + """Get package version from installed package metadata""" + with patch("wacz.util.package_version", return_value="0.5.0") as mock_version: + self.assertEqual(get_py_wacz_version(), "0.5.0") + mock_version.assert_called_once_with("wacz") + if __name__ == "__main__": unittest.main() diff --git a/wacz/main.py b/wacz/main.py index 61fade3..8d60963 100644 --- a/wacz/main.py +++ b/wacz/main.py @@ -1,6 +1,6 @@ from argparse import ArgumentParser, RawTextHelpFormatter from io import BytesIO, StringIO, TextIOWrapper -import os, json, datetime, shutil, zipfile, sys, gzip, pkg_resources +import os, json, datetime, shutil, zipfile, sys, gzip from wacz.waczindexer import WACZIndexer from wacz.util import now, WACZ_VERSION, construct_passed_pages_dict from wacz.validate import Validation, OUTDATED_WACZ diff --git a/wacz/util.py b/wacz/util.py index 4217c11..cfe0570 100644 --- a/wacz/util.py +++ b/wacz/util.py @@ -1,6 +1,10 @@ import hashlib, datetime, json, os +try: + from importlib.metadata import version as package_version +except ImportError: + from importlib_metadata import version as package_version + from warcio.timeutils import iso_date_to_timestamp -import pkg_resources WACZ_VERSION = "1.1.1" @@ -36,7 +40,7 @@ def check_http_and_https(url, ts, pages_dict): def get_py_wacz_version(): """Get version of the py-wacz package""" - return pkg_resources.get_distribution("wacz").version + return package_version("wacz") def hash_stream(hash_type, stream): diff --git a/wacz/validate.py b/wacz/validate.py index ca01a55..2e3f59a 100644 --- a/wacz/validate.py +++ b/wacz/validate.py @@ -1,4 +1,4 @@ -import tempfile, os, zipfile, json, pathlib, pkg_resources, gzip +import tempfile, os, zipfile, json, pathlib, gzip from frictionless import validate from wacz.util import hash_stream, now from wacz.waczindexer import WACZIndexer