From 71e0b23703f3b501d45a616ac2a71c819a71f3b8 Mon Sep 17 00:00:00 2001 From: Conor MacBride Date: Thu, 21 Apr 2022 16:26:15 +0100 Subject: [PATCH 1/3] Add test for image shape mismatch --- .../subtests/baseline/test_hdiff_idiffshape.png | Bin 0 -> 16516 bytes .../baseline/test_hmatch_idiffshape.png | Bin 0 -> 16164 bytes .../baseline/test_hmissing_idiffshape.png | Bin 0 -> 17283 bytes tests/subtests/hashes/mpl33_ft261.json | 2 ++ tests/subtests/hashes/mpl34_ft261.json | 2 ++ tests/subtests/hashes/mpl35_ft261.json | 2 ++ tests/subtests/result_hashes/mpl33_ft261.json | 3 +++ tests/subtests/result_hashes/mpl34_ft261.json | 3 +++ tests/subtests/result_hashes/mpl35_ft261.json | 3 +++ tests/subtests/subtest.py | 15 +++++++++++++++ 10 files changed, 30 insertions(+) create mode 100644 tests/subtests/baseline/test_hdiff_idiffshape.png create mode 100644 tests/subtests/baseline/test_hmatch_idiffshape.png create mode 100644 tests/subtests/baseline/test_hmissing_idiffshape.png diff --git a/tests/subtests/baseline/test_hdiff_idiffshape.png b/tests/subtests/baseline/test_hdiff_idiffshape.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc3cbce21a3aeea0677580ae0e793838d41f196 GIT binary patch literal 16516 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 Dp;XU( literal 0 HcmV?d00001 diff --git a/tests/subtests/baseline/test_hmatch_idiffshape.png b/tests/subtests/baseline/test_hmatch_idiffshape.png new file mode 100644 index 0000000000000000000000000000000000000000..82b5e0aed7880914357794314fcf5c603dcba04e GIT binary patch literal 16164 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 literal 0 HcmV?d00001 diff --git a/tests/subtests/baseline/test_hmissing_idiffshape.png b/tests/subtests/baseline/test_hmissing_idiffshape.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca56a9199d1ca3941f3fd329e20b8ce3d77b1a4 GIT binary patch literal 17283 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 Date: Thu, 21 Apr 2022 16:52:00 +0100 Subject: [PATCH 2/3] Update baseline summaries --- tests/subtests/summaries/test_default.json | 39 +++++++++++++++++++ tests/subtests/summaries/test_generate.json | 39 +++++++++++++++++++ .../summaries/test_generate_hashes_only.json | 39 +++++++++++++++++++ .../summaries/test_generate_images_only.json | 39 +++++++++++++++++++ tests/subtests/summaries/test_hash.json | 39 +++++++++++++++++++ .../summaries/test_html_generate.json | 39 +++++++++++++++++++ .../test_html_generate_hashes_only.json | 39 +++++++++++++++++++ .../test_html_generate_images_only.json | 39 +++++++++++++++++++ .../summaries/test_html_hashes_only.json | 39 +++++++++++++++++++ .../summaries/test_html_images_only.json | 39 +++++++++++++++++++ tests/subtests/summaries/test_hybrid.json | 39 +++++++++++++++++++ .../summaries/test_results_always.json | 39 +++++++++++++++++++ 12 files changed, 468 insertions(+) diff --git a/tests/subtests/summaries/test_default.json b/tests/subtests/summaries/test_default.json index b4b51444..f5e295fa 100644 --- a/tests/subtests/summaries/test_default.json +++ b/tests/subtests/summaries/test_default.json @@ -25,6 +25,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "failed", "image_status": "missing", @@ -64,6 +77,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "image_status": "missing", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "image_status": "missing", diff --git a/tests/subtests/summaries/test_generate.json b/tests/subtests/summaries/test_generate.json index 6f9f78e2..401081a8 100644 --- a/tests/subtests/summaries/test_generate.json +++ b/tests/subtests/summaries/test_generate.json @@ -25,6 +25,19 @@ "baseline_hash": "2b48790b0a2cee4b41cdb9820336acaf229ba811ae21c6a92b4b92838843adfa", "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "skipped", "image_status": "generated", @@ -64,6 +77,19 @@ "baseline_hash": "927521206ef454a25417e3ba0bd3235c84518cb202c2d1fa7afcfdfcde5fdcde", "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "skipped", "image_status": "generated", @@ -103,6 +129,19 @@ "baseline_hash": "4eeda1d349f4b0f26df97df41ba5410dce2b1c7ed520062d58f3c5f0e3790ebd", "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d", + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "skipped", "image_status": "generated", diff --git a/tests/subtests/summaries/test_generate_hashes_only.json b/tests/subtests/summaries/test_generate_hashes_only.json index 8dee25fa..a53ef2ca 100644 --- a/tests/subtests/summaries/test_generate_hashes_only.json +++ b/tests/subtests/summaries/test_generate_hashes_only.json @@ -25,6 +25,19 @@ "baseline_hash": "2b48790b0a2cee4b41cdb9820336acaf229ba811ae21c6a92b4b92838843adfa", "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "failed", "image_status": "missing", @@ -64,6 +77,19 @@ "baseline_hash": "927521206ef454a25417e3ba0bd3235c84518cb202c2d1fa7afcfdfcde5fdcde", "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "image_status": "missing", @@ -103,6 +129,19 @@ "baseline_hash": "4eeda1d349f4b0f26df97df41ba5410dce2b1c7ed520062d58f3c5f0e3790ebd", "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d", + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "image_status": "missing", diff --git a/tests/subtests/summaries/test_generate_images_only.json b/tests/subtests/summaries/test_generate_images_only.json index 7720807d..553b5589 100644 --- a/tests/subtests/summaries/test_generate_images_only.json +++ b/tests/subtests/summaries/test_generate_images_only.json @@ -25,6 +25,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "skipped", "image_status": "generated", @@ -64,6 +77,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "skipped", "image_status": "generated", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "skipped", "image_status": "generated", diff --git a/tests/subtests/summaries/test_hash.json b/tests/subtests/summaries/test_hash.json index 4304bf03..ac51e659 100644 --- a/tests/subtests/summaries/test_hash.json +++ b/tests/subtests/summaries/test_hash.json @@ -25,6 +25,19 @@ "baseline_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857", "result_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857" }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "passed", + "image_status": null, + "hash_status": "match", + "status_msg": "Test hash matches baseline hash.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e" + }, "subtests.subtest.test_hmatch_imissing": { "status": "passed", "image_status": null, @@ -64,6 +77,19 @@ "baseline_hash": "d1ff61bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43", "result_hash": "443361bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43" }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": null, + "hash_status": "diff", + "status_msg": "REGEX:Hash 5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 doesn't match hash d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 in library .*\\.json for test subtests\\.subtest\\.test_hdiff_idiffshape\\.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580" + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "status_msg": "REGEX:Hash 301e63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e doesn't match hash d1ff63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e in library .*\\.json for test subtests\\.subtest\\.test_hdiff_imissing\\.", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": "e69570c4a70b2cc88ddee0f0a82312cae4f394b7f62e5760245feda1364c03ab" }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": null, + "hash_status": "missing", + "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_idiffshape' not found in .*\\.json\\. Generated hash is 204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d\\.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d" + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_imissing' not found in .*\\.json\\. Generated hash is 5c8a9c7412e4e098f6f2683ee247c08bd50805a93df4d4b6d8fccf3579b4c56b\\.", diff --git a/tests/subtests/summaries/test_html_generate.json b/tests/subtests/summaries/test_html_generate.json index 84a8e8b9..d4a2835e 100644 --- a/tests/subtests/summaries/test_html_generate.json +++ b/tests/subtests/summaries/test_html_generate.json @@ -25,6 +25,19 @@ "baseline_hash": "2b48790b0a2cee4b41cdb9820336acaf229ba811ae21c6a92b4b92838843adfa", "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "skipped", "image_status": "generated", @@ -64,6 +77,19 @@ "baseline_hash": "927521206ef454a25417e3ba0bd3235c84518cb202c2d1fa7afcfdfcde5fdcde", "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "skipped", "image_status": "generated", @@ -103,6 +129,19 @@ "baseline_hash": "4eeda1d349f4b0f26df97df41ba5410dce2b1c7ed520062d58f3c5f0e3790ebd", "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": "generated", + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d", + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "skipped", "image_status": "generated", diff --git a/tests/subtests/summaries/test_html_generate_hashes_only.json b/tests/subtests/summaries/test_html_generate_hashes_only.json index 0a813734..d679f033 100644 --- a/tests/subtests/summaries/test_html_generate_hashes_only.json +++ b/tests/subtests/summaries/test_html_generate_hashes_only.json @@ -25,6 +25,19 @@ "baseline_hash": "2b48790b0a2cee4b41cdb9820336acaf229ba811ae21c6a92b4b92838843adfa", "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "failed", "image_status": "missing", @@ -64,6 +77,19 @@ "baseline_hash": "927521206ef454a25417e3ba0bd3235c84518cb202c2d1fa7afcfdfcde5fdcde", "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "image_status": "missing", @@ -103,6 +129,19 @@ "baseline_hash": "4eeda1d349f4b0f26df97df41ba5410dce2b1c7ed520062d58f3c5f0e3790ebd", "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "generated", + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d", + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "image_status": "missing", diff --git a/tests/subtests/summaries/test_html_generate_images_only.json b/tests/subtests/summaries/test_html_generate_images_only.json index bed75fae..9d1947eb 100644 --- a/tests/subtests/summaries/test_html_generate_images_only.json +++ b/tests/subtests/summaries/test_html_generate_images_only.json @@ -25,6 +25,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "skipped", "image_status": "generated", @@ -64,6 +77,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "skipped", "image_status": "generated", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "skipped", + "image_status": "generated", + "hash_status": null, + "status_msg": "Skipped test, since generating image.", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "skipped", "image_status": "generated", diff --git a/tests/subtests/summaries/test_html_hashes_only.json b/tests/subtests/summaries/test_html_hashes_only.json index a55666ac..42442399 100644 --- a/tests/subtests/summaries/test_html_hashes_only.json +++ b/tests/subtests/summaries/test_html_hashes_only.json @@ -25,6 +25,19 @@ "baseline_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857", "result_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857" }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "passed", + "image_status": null, + "hash_status": "match", + "status_msg": "Test hash matches baseline hash.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e" + }, "subtests.subtest.test_hmatch_imissing": { "status": "passed", "image_status": null, @@ -64,6 +77,19 @@ "baseline_hash": "d1ff61bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43", "result_hash": "443361bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43" }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": null, + "hash_status": "diff", + "status_msg": "REGEX:Hash 5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 doesn't match hash d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 in library .*\\.json for test subtests\\.subtest\\.test_hdiff_idiffshape\\.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580" + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "status_msg": "REGEX:Hash 301e63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e doesn't match hash d1ff63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e in library .*\\.json for test subtests\\.subtest\\.test_hdiff_imissing\\.", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": "e69570c4a70b2cc88ddee0f0a82312cae4f394b7f62e5760245feda1364c03ab" }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": null, + "hash_status": "missing", + "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_idiffshape' not found in .*\\.json\\. Generated hash is 204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d\\.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d" + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_imissing' not found in .*\\.json\\. Generated hash is 5c8a9c7412e4e098f6f2683ee247c08bd50805a93df4d4b6d8fccf3579b4c56b\\.", diff --git a/tests/subtests/summaries/test_html_images_only.json b/tests/subtests/summaries/test_html_images_only.json index 0b33035e..bd23837d 100644 --- a/tests/subtests/summaries/test_html_images_only.json +++ b/tests/subtests/summaries/test_html_images_only.json @@ -25,6 +25,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmatch_imissing": { "status": "failed", "image_status": "missing", @@ -64,6 +77,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "image_status": "missing", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": null }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": null, + "status_msg": "REGEX:Error: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": null + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "image_status": "missing", diff --git a/tests/subtests/summaries/test_hybrid.json b/tests/subtests/summaries/test_hybrid.json index 851e67f1..d65ae9cb 100644 --- a/tests/subtests/summaries/test_hybrid.json +++ b/tests/subtests/summaries/test_hybrid.json @@ -25,6 +25,19 @@ "baseline_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857", "result_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857" }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "passed", + "image_status": null, + "hash_status": "match", + "status_msg": "Test hash matches baseline hash.", + "baseline_image": null, + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": null, + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e" + }, "subtests.subtest.test_hmatch_imissing": { "status": "passed", "image_status": null, @@ -64,6 +77,19 @@ "baseline_hash": "d1ff61bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43", "result_hash": "443361bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43" }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "diff", + "status_msg": "REGEX:Hash 5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 doesn't match hash d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 in library .*\\.json for test subtests\\.subtest\\.test_hdiff_idiffshape\\.\n\nImage comparison test\n---------------------\nError: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580" + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "status_msg": "REGEX:Hash 301e63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e doesn't match hash d1ff63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e in library .*\\.json for test subtests\\.subtest\\.test_hdiff_imissing\\.\n\nImage comparison test\n---------------------\nImage file not found for comparison test in: \n\t.*\n\\(This is expected for new tests\\.\\)\nGenerated Image: \n\t.*result\\.png", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": "e69570c4a70b2cc88ddee0f0a82312cae4f394b7f62e5760245feda1364c03ab" }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "missing", + "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_idiffshape' not found in .*\\.json\\. Generated hash is 204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d\\.\n\nImage comparison test\n---------------------\nError: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d" + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_imissing' not found in .*\\.json\\. Generated hash is 5c8a9c7412e4e098f6f2683ee247c08bd50805a93df4d4b6d8fccf3579b4c56b\\.\n\nImage comparison test\n---------------------\nImage file not found for comparison test in: \n\t.*\n\\(This is expected for new tests\\.\\)\nGenerated Image: \n\t.*result\\.png", diff --git a/tests/subtests/summaries/test_results_always.json b/tests/subtests/summaries/test_results_always.json index ea7af1d2..333c1e2c 100644 --- a/tests/subtests/summaries/test_results_always.json +++ b/tests/subtests/summaries/test_results_always.json @@ -25,6 +25,19 @@ "baseline_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857", "result_hash": "8b5c00365e6f784d5c8947091f09a92fd7d222e790431f297b4848f173e64857" }, + "subtests.subtest.test_hmatch_idiffshape": { + "status": "passed", + "image_status": "diff", + "hash_status": "match", + "status_msg": "REGEX:Test hash matches baseline hash\\.\n\nImage comparison test\n---------------------\nError: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmatch_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmatch_idiffshape/result.png", + "baseline_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e", + "result_hash": "e3fed4ad2d22aff2cd771c5503dcb30c6161b21d154430ededa5faa1ec54366e" + }, "subtests.subtest.test_hmatch_imissing": { "status": "passed", "image_status": "missing", @@ -64,6 +77,19 @@ "baseline_hash": "d1ff61bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43", "result_hash": "443361bdd0efd1cdd343eabf73af6f20439d4834ab5503a574ac7ec28e0c2b43" }, + "subtests.subtest.test_hdiff_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "diff", + "status_msg": "REGEX:Hash 5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 doesn't match hash d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580 in library .*\\.json for test subtests\\.subtest\\.test_hdiff_idiffshape\\.\n\nImage comparison test\n---------------------\nError: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hdiff_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hdiff_idiffshape/result.png", + "baseline_hash": "d1ff745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580", + "result_hash": "5d37745bbdf2aac6743dbd830afb1877c2ac25a5f926d4f6483c1e24d19a0580" + }, "subtests.subtest.test_hdiff_imissing": { "status": "failed", "status_msg": "REGEX:Hash 301e63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e doesn't match hash d1ff63d656d7a586cc4e498bc32b970f8cb7c7c47bbd2fec33b931219fc0690e in library .*\\.json for test subtests\\.subtest\\.test_hdiff_imissing\\.\n\nImage comparison test\n---------------------\nImage file not found for comparison test in: \n\t.*\n\\(This is expected for new tests\\.\\)\nGenerated Image: \n\t.*result\\.png", @@ -103,6 +129,19 @@ "baseline_hash": null, "result_hash": "e69570c4a70b2cc88ddee0f0a82312cae4f394b7f62e5760245feda1364c03ab" }, + "subtests.subtest.test_hmissing_idiffshape": { + "status": "failed", + "image_status": "diff", + "hash_status": "missing", + "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_idiffshape' not found in .*\\.json\\. Generated hash is 204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d\\.\n\nImage comparison test\n---------------------\nError: Image dimensions did not match\\.\n Expected shape: \\(400, 400\\)\n .*baseline\\.png\n Actual shape: \\(600, 800\\)\n .*result\\.png", + "baseline_image": "subtests.subtest.test_hmissing_idiffshape/baseline.png", + "diff_image": null, + "rms": null, + "tolerance": null, + "result_image": "subtests.subtest.test_hmissing_idiffshape/result.png", + "baseline_hash": null, + "result_hash": "204d43b643538cafafa2d0fb7dafac9cf7009dbb421d4b32c71da2e400ceb59d" + }, "subtests.subtest.test_hmissing_imissing": { "status": "failed", "status_msg": "REGEX:Hash for test 'subtests\\.subtest\\.test_hmissing_imissing' not found in .*\\.json\\. Generated hash is 5c8a9c7412e4e098f6f2683ee247c08bd50805a93df4d4b6d8fccf3579b4c56b\\.\n\nImage comparison test\n---------------------\nImage file not found for comparison test in: \n\t.*\n\\(This is expected for new tests\\.\\)\nGenerated Image: \n\t.*result\\.png", From 06475e8f59ff0b8ddca5e4f7fc8a1fd2b3fcde45 Mon Sep 17 00:00:00 2001 From: Conor MacBride Date: Fri, 22 Apr 2022 14:04:01 +0100 Subject: [PATCH 3/3] Handle shape mismatch results in HTML --- pytest_mpl/summary/html.py | 2 ++ pytest_mpl/summary/templates/result.html | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pytest_mpl/summary/html.py b/pytest_mpl/summary/html.py index 78fbcc19..0f30566d 100644 --- a/pytest_mpl/summary/html.py +++ b/pytest_mpl/summary/html.py @@ -130,6 +130,8 @@ def _rms_sort(self): if self.image_status == 'match': return "000000" elif self.image_status == 'diff': + if self.rms is None: # Shape mismatch + return "999999" # RMS will be in [0, 255] return f"{(self.rms + 2) * 1000:06.0f}" else: # Missing baseline image diff --git a/pytest_mpl/summary/templates/result.html b/pytest_mpl/summary/templates/result.html index 06d34973..6e7986bd 100644 --- a/pytest_mpl/summary/templates/result.html +++ b/pytest_mpl/summary/templates/result.html @@ -8,14 +8,18 @@