From 328ac9ec2e9b9b573a7b5208247bc60286d6a47d Mon Sep 17 00:00:00 2001 From: gounux Date: Thu, 4 Jul 2024 09:44:17 +0200 Subject: [PATCH] opti fetch image sizes dict --- geotribu_cli/content/header_check.py | 7 ++-- tests/test_yaml_header_check.py | 49 +++++++++++++++++++--------- 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/geotribu_cli/content/header_check.py b/geotribu_cli/content/header_check.py index 7474f62..1d7af4f 100644 --- a/geotribu_cli/content/header_check.py +++ b/geotribu_cli/content/header_check.py @@ -226,6 +226,9 @@ def run(args: argparse.Namespace) -> None: logger.debug(f"Running {args.command} with {args}") content_paths: list[Path] = args.content_path + # fetch image sizes dict once before processing + image_sizes = download_image_sizes() + for content_path in content_paths: logger.info(f"Checking header of {content_path}") check_path( @@ -249,7 +252,7 @@ def run(args: argparse.Namespace) -> None: # check image max size if not check_image_size( yaml_meta["image"], - download_image_sizes(), + image_sizes, args.max_image_width, args.max_image_height, ): @@ -267,7 +270,7 @@ def run(args: argparse.Namespace) -> None: # check image max ratio if not check_image_ratio( yaml_meta["image"], - download_image_sizes(), + image_sizes, args.min_image_ratio, args.max_image_ratio, ): diff --git a/tests/test_yaml_header_check.py b/tests/test_yaml_header_check.py index 2e5eb7e..1aced97 100644 --- a/tests/test_yaml_header_check.py +++ b/tests/test_yaml_header_check.py @@ -23,6 +23,8 @@ class TestYamlHeaderCheck(unittest.TestCase): + image_sizes = download_image_sizes() + def setUp(self): with open("tests/fixtures/content/2012-12-21_article_passe.md") as past_file: past_content = past_file.read() @@ -102,68 +104,85 @@ def test_image_extension_nok(self): self.assertFalse(check_image_extension("https://mon.image.tiff")) def test_image_size_ok(self): - sizes = download_image_sizes() self.assertTrue( check_image_size( - URL_TEST_VERTICAL_IMAGE, sizes, max_width=800, max_height=800 + URL_TEST_VERTICAL_IMAGE, self.image_sizes, max_width=800, max_height=800 ) ) self.assertTrue( check_image_size( - URL_TEST_HORIZONTAL_IMAGE, sizes, max_width=800, max_height=800 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + max_width=800, + max_height=800, ) ) def test_image_size_nok(self): - sizes = download_image_sizes() self.assertFalse( check_image_size( - URL_TEST_VERTICAL_IMAGE, sizes, max_width=380, max_height=800 + URL_TEST_VERTICAL_IMAGE, self.image_sizes, max_width=380, max_height=800 ) ) self.assertFalse( check_image_size( - URL_TEST_VERTICAL_IMAGE, sizes, max_width=800, max_height=799 + URL_TEST_VERTICAL_IMAGE, self.image_sizes, max_width=800, max_height=799 ) ) self.assertFalse( check_image_size( - URL_TEST_HORIZONTAL_IMAGE, sizes, max_width=799, max_height=800 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + max_width=799, + max_height=800, ) ) self.assertFalse( check_image_size( - URL_TEST_HORIZONTAL_IMAGE, sizes, max_width=800, max_height=532 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + max_width=800, + max_height=532, ) ) def test_image_ratio_ok(self): - sizes = download_image_sizes() self.assertTrue( check_image_ratio( - URL_TEST_VERTICAL_IMAGE, sizes, min_ratio=0.45, max_ratio=0.5 + URL_TEST_VERTICAL_IMAGE, self.image_sizes, min_ratio=0.45, max_ratio=0.5 ) ) self.assertTrue( check_image_ratio( - URL_TEST_HORIZONTAL_IMAGE, sizes, min_ratio=1.45, max_ratio=1.55 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + min_ratio=1.45, + max_ratio=1.55, ) ) self.assertTrue( check_image_ratio( - URL_TEST_HORIZONTAL_IMAGE, sizes, min_ratio=1.49, max_ratio=1.51 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + min_ratio=1.49, + max_ratio=1.51, ) ) def test_image_ratio_nok(self): - sizes = download_image_sizes() self.assertFalse( check_image_ratio( - URL_TEST_VERTICAL_IMAGE, sizes, min_ratio=1.45, max_ratio=1.55 + URL_TEST_VERTICAL_IMAGE, + self.image_sizes, + min_ratio=1.45, + max_ratio=1.55, ) ) self.assertFalse( check_image_ratio( - URL_TEST_HORIZONTAL_IMAGE, sizes, min_ratio=1.2, max_ratio=1.3 + URL_TEST_HORIZONTAL_IMAGE, + self.image_sizes, + min_ratio=1.2, + max_ratio=1.3, ) )