Created
March 18, 2024 00:10
-
-
Save mweinelt/bb668e03a56ba4f86cfc4b1bfe7c0294 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 -- /nix/store/7wz6hm9i8wljz0hgwz1wqmn2zlbgavrq-python3-3.11.8/bin/python3.11 | |
pytest-mpl> cachedir: .pytest_cache | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-mpl-0.17.0 | |
pytest-mpl> configfile: setup.cfg | |
pytest-mpl> testpaths: tests | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 120 items / 2 deselected / 118 selected | |
pytest-mpl> | |
pytest-mpl> tests/test_baseline_path.py::test_config[dir1-None-None-dir1-True] FAILED [ 0%] | |
pytest-mpl> tests/test_baseline_path.py::test_config[dir1-dir2-None-dir2-True] FAILED [ 1%] | |
pytest-mpl> tests/test_baseline_path.py::test_config[dir1-dir2-dir3-dir3-True] FAILED [ 2%] | |
pytest-mpl> tests/test_baseline_path.py::test_config[dir1-dir2-dir3-dir2-False] PASSED [ 3%] | |
pytest-mpl> tests/test_baseline_path.py::test_config[None-None-dir3-dir3-True] FAILED [ 4%] | |
pytest-mpl> tests/test_default_backend.py::test_config[backend1-None-None-backend1] PASSED [ 5%] | |
pytest-mpl> tests/test_default_backend.py::test_config[backend1-backend2-None-backend2] PASSED [ 5%] | |
pytest-mpl> tests/test_default_backend.py::test_config[backend1-backend2-backend3-backend3] PASSED [ 6%] | |
pytest-mpl> tests/test_default_style.py::test_config[sty1-None-None-sty1] PASSED [ 7%] | |
pytest-mpl> tests/test_default_style.py::test_config[sty1-sty2-None-sty2] PASSED [ 8%] | |
pytest-mpl> tests/test_default_style.py::test_config[sty1-sty2-sty3-sty3] PASSED [ 9%] | |
pytest-mpl> tests/test_default_tolerance.py::test_config[40-None-None-True] PASSED [ 10%] | |
pytest-mpl> tests/test_default_tolerance.py::test_config[30-40-None-True] PASSED [ 11%] | |
pytest-mpl> tests/test_default_tolerance.py::test_config[30-30-40-True] PASSED [ 11%] | |
pytest-mpl> tests/test_default_tolerance.py::test_config[30-40-30-False] PASSED [ 12%] | |
pytest-mpl> tests/test_default_tolerance.py::test_config[40-30-30-False] PASSED [ 13%] | |
pytest-mpl> tests/test_deterministic.py::test_multiple_cli_flags PASSED [ 14%] | |
pytest-mpl> tests/test_deterministic.py::test_warning PASSED [ 15%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--None-True-eps] SKIPPED [ 16%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--None-True-pdf] SKIPPED [ 16%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--None-True-png] PASSED [ 17%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--None-True-svg] SKIPPED [ 18%] | |
pytest-mpl> tests/test_deterministic.py::test_config[false---mpl-deterministic-None-True-eps] SKIPPED [ 19%] | |
pytest-mpl> tests/test_deterministic.py::test_config[false---mpl-deterministic-None-True-pdf] SKIPPED [ 20%] | |
pytest-mpl> tests/test_deterministic.py::test_config[false---mpl-deterministic-None-True-png] PASSED [ 21%] | |
pytest-mpl> tests/test_deterministic.py::test_config[false---mpl-deterministic-None-True-svg] SKIPPED [ 22%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true---mpl-no-deterministic-None-False-eps] SKIPPED [ 22%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true---mpl-no-deterministic-None-False-pdf] SKIPPED [ 23%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true---mpl-no-deterministic-None-False-png] PASSED [ 24%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true---mpl-no-deterministic-None-False-svg] SKIPPED [ 25%] | |
pytest-mpl> tests/test_deterministic.py::test_config[---mpl-no-deterministic-True-True-eps] SKIPPED [ 26%] | |
pytest-mpl> tests/test_deterministic.py::test_config[---mpl-no-deterministic-True-True-pdf] SKIPPED [ 27%] | |
pytest-mpl> tests/test_deterministic.py::test_config[---mpl-no-deterministic-True-True-png] PASSED [ 27%] | |
pytest-mpl> tests/test_deterministic.py::test_config[---mpl-no-deterministic-True-True-svg] SKIPPED [ 28%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--False-False-eps] SKIPPED [ 29%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--False-False-pdf] SKIPPED [ 30%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--False-False-png] PASSED [ 31%] | |
pytest-mpl> tests/test_deterministic.py::test_config[true--False-False-svg] SKIPPED [ 32%] | |
pytest-mpl> tests/test_generate.py::test_generate_baseline_images PASSED [ 33%] | |
pytest-mpl> tests/test_generate.py::test_generate_baseline_hashes PASSED [ 33%] | |
pytest-mpl> tests/test_generate.py::test_generate_baseline_images_and_hashes PASSED [ 34%] | |
pytest-mpl> tests/test_generate_summary.py::test_config[json-None-expected0] PASSED [ 35%] | |
pytest-mpl> tests/test_generate_summary.py::test_config[json-html-expected1] PASSED [ 36%] | |
pytest-mpl> tests/test_generate_summary.py::test_config[basic-html-json-expected2] PASSED [ 37%] | |
pytest-mpl> tests/test_generate_summary.py::test_config[None-json,basic-html,html-expected3] PASSED [ 38%] | |
pytest-mpl> tests/test_hash_library.py::test_config[bad-None-None-False] PASSED [ 38%] | |
pytest-mpl> tests/test_hash_library.py::test_config[good-None-None-True] PASSED [ 39%] | |
pytest-mpl> tests/test_hash_library.py::test_config[bad-good-None-True] PASSED [ 40%] | |
pytest-mpl> tests/test_hash_library.py::test_config[bad-bad-good-False] PASSED [ 41%] | |
pytest-mpl> tests/test_hash_library.py::test_config[bad-good-bad-True] PASSED [ 42%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_succeeds PASSED [ 43%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_succeeds_remote PASSED [ 44%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_succeeds_faulty_mirror PASSED [ 44%] | |
pytest-mpl> tests/test_pytest_mpl.py::TestClass::test_succeeds PASSED [ 45%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_dpi PASSED [ 46%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_fails PASSED [ 47%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_output_dir PASSED [ 48%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_generate PASSED [ 49%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_tolerance PASSED [ 50%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_nofigure PASSED [ 50%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_base_style PASSED [ 51%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_remove_text PASSED [ 52%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_parametrized[5] PASSED [ 53%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_parametrized[50] PASSED [ 54%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_parametrized[500] PASSED [ 55%] | |
pytest-mpl> tests/test_pytest_mpl.py::TestClassWithSetup::test_succeeds PASSED [ 55%] | |
pytest-mpl> tests/test_pytest_mpl.py::TestClassWithTestCase::test_succeeds PASSED [ 56%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_hash_succeeds SKIPPED (No hash library | |
pytest-mpl> for this mpl version) [ 57%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_hash_fail_hybrid SKIPPED (Incorrect | |
pytest-mpl> freetype version for hash check) [ 58%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_hash_fail_new_hashes SKIPPED (Incorrect | |
pytest-mpl> freetype version for hash check) [ 59%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_results_always SKIPPED (No hash library | |
pytest-mpl> for this mpl version) [ 60%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_class_fail[\nimport pytest\nimport matplotlib.pyplot as plt\nclass TestClass(object):\n @pytest.mark.mpl_image_compare\n def test_fails(self):\n fig = plt.figure()\n ax = fig.add_subplot(1, 1, 1)\n ax.plot([1, 2, 3])\n return fig\n] PASSED [ 61%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_class_fail[\nimport pytest\nimport matplotlib.pyplot as plt\nclass TestClassWithSetup:\n def setup_method(self, method):\n self.x = [1, 2, 3]\n @pytest.mark.mpl_image_compare\n def test_fails(self):\n fig = plt.figure()\n ax = fig.add_subplot(1, 1, 1)\n ax.plot(self.x)\n return fig\n] PASSED [ 61%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_class_fail[\nfrom unittest import TestCase\nimport pytest\nimport matplotlib.pyplot as plt\nclass TestClassWithTestCase(TestCase):\n def setUp(self):\n self.x = [1, 2, 3]\n @pytest.mark.mpl_image_compare\n def test_fails(self):\n fig = plt.figure()\n ax = fig.add_subplot(1, 1, 1)\n ax.plot(self.x)\n return fig\n] PASSED [ 62%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_fail[runpytest_args0] PASSED [ 63%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_fail[runpytest_args1] PASSED [ 64%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_skip[runpytest_args0] PASSED [ 65%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_skip[runpytest_args1] PASSED [ 66%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_importorskip[runpytest_args0] PASSED [ 66%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_importorskip[runpytest_args1] PASSED [ 67%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_xfail[runpytest_args0] PASSED [ 68%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_xfail[runpytest_args1] PASSED [ 69%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_exit_success[runpytest_args0] PASSED [ 70%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_exit_success[runpytest_args1] PASSED [ 71%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_exit_failure[runpytest_args0] PASSED [ 72%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_exit_failure[runpytest_args1] PASSED [ 72%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_function_raises[runpytest_args0] PASSED [ 73%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_user_function_raises[runpytest_args1] PASSED [ 74%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[eps-False-False] SKIPPEDed) [ 75%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[eps-False-True] SKIPPEDled) [ 76%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[eps-True-False] SKIPPEDled) [ 77%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[eps-True-True] SKIPPED (Comparing | |
pytest-mpl> EPS and PDF files requires ghostscript to be installed) [ 77%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[pdf-False-False] SKIPPEDed) [ 78%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[pdf-False-True] SKIPPEDled) [ 79%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[pdf-True-False] SKIPPEDled) [ 80%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[pdf-True-True] SKIPPED (Comparing | |
pytest-mpl> EPS and PDF files requires ghostscript to be installed) [ 81%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[png-False-False] PASSED [ 82%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[png-False-True] SKIPPED (No hash | |
pytest-mpl> library for this mpl version) [ 83%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[png-True-False] FAILED [ 83%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[png-True-True] SKIPPED (No hash | |
pytest-mpl> library for this mpl version) [ 84%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[svg-False-False] SKIPPED [ 85%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[svg-False-True] SKIPPED [ 86%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[svg-True-False] SKIPPED [ 87%] | |
pytest-mpl> tests/test_pytest_mpl.py::test_formats[svg-True-True] SKIPPED (Comparing | |
pytest-mpl> SVG files requires inkscape to be installed) [ 88%] | |
pytest-mpl> tests/test_results_always.py::test_config[None-None-False] FAILED [ 88%] | |
pytest-mpl> tests/test_results_always.py::test_config[True-None-True] FAILED [ 89%] | |
pytest-mpl> tests/test_results_always.py::test_config[False-None-False] FAILED [ 90%] | |
pytest-mpl> tests/test_results_always.py::test_config[False-True-True] FAILED [ 91%] | |
pytest-mpl> tests/test_results_always.py::test_config[True-True-True] FAILED [ 92%] | |
pytest-mpl> tests/test_results_path.py::test_config[dir1-None-dir1] PASSED [ 93%] | |
pytest-mpl> tests/test_results_path.py::test_config[dir1-dir2-dir2] PASSED [ 94%] | |
pytest-mpl> tests/test_results_path.py::test_config[None-dir2-dir2] PASSED [ 94%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[None-None-test_mpl-True] FAILED [ 95%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[False-None-test_mpl-True] FAILED [ 96%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[True-None-test_config.TestClass.test_mpl-True] FAILED [ 97%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[False-True-test_config.TestClass.test_mpl-True] FAILED [ 98%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[None-True-test_config.TestClass.test_mpl-True] FAILED [ 99%] | |
pytest-mpl> tests/test_use_full_test_name.py::test_config[True-True-bad_name-False] PASSED [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ____________________ test_config[dir1-None-None-dir1-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config0')> | |
pytest-mpl> ini = 'mpl-baseline-path = /build/pytest-of-nixbld/pytest-0/test_config0/dir1' | |
pytest-mpl> cli = '', kwarg = '', expected_baseline_path = 'dir1', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, kwarg, expected_baseline_path, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> ("dir1", None, None, "dir1", True), | |
pytest-mpl> ("dir1", "dir2", None, "dir2", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir3", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir2", False), | |
pytest-mpl> (None, None, "dir3", "dir3", True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, kwarg, expected_baseline_path, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> (path / expected_baseline_path).mkdir() | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / expected_baseline_path / "test_mpl.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-baseline-path = {path / ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> kwarg = f"baseline_dir=r'{path / kwarg}'" if kwarg else "" | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> f""" | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare({kwarg}) | |
pytest-mpl> def test_mpl(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = f"--mpl-baseline-path={path / cli}" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_baseline_path.py:48: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config0 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ___________________________________ test_mpl ___________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpte3ome4h/test_config.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpte3ome4h/test_config.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpte3ome4h/test_config.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_mpl - Failed: Error: Image files did not match. | |
pytest-mpl> ============================== 1 failed in 0.30s =============================== | |
pytest-mpl> ____________________ test_config[dir1-dir2-None-dir2-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config1')> | |
pytest-mpl> ini = 'mpl-baseline-path = /build/pytest-of-nixbld/pytest-0/test_config1/dir1' | |
pytest-mpl> cli = '--mpl-baseline-path=/build/pytest-of-nixbld/pytest-0/test_config1/dir2' | |
pytest-mpl> kwarg = '', expected_baseline_path = 'dir2', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, kwarg, expected_baseline_path, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> ("dir1", None, None, "dir1", True), | |
pytest-mpl> ("dir1", "dir2", None, "dir2", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir3", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir2", False), | |
pytest-mpl> (None, None, "dir3", "dir3", True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, kwarg, expected_baseline_path, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> (path / expected_baseline_path).mkdir() | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / expected_baseline_path / "test_mpl.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-baseline-path = {path / ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> kwarg = f"baseline_dir=r'{path / kwarg}'" if kwarg else "" | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> f""" | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare({kwarg}) | |
pytest-mpl> def test_mpl(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = f"--mpl-baseline-path={path / cli}" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_baseline_path.py:48: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config1 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ___________________________________ test_mpl ___________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpy1q3dfev/test_config.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpy1q3dfev/test_config.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpy1q3dfev/test_config.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_mpl - Failed: Error: Image files did not match. | |
pytest-mpl> ============================== 1 failed in 0.26s =============================== | |
pytest-mpl> ____________________ test_config[dir1-dir2-dir3-dir3-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config2')> | |
pytest-mpl> ini = 'mpl-baseline-path = /build/pytest-of-nixbld/pytest-0/test_config2/dir1' | |
pytest-mpl> cli = '--mpl-baseline-path=/build/pytest-of-nixbld/pytest-0/test_config2/dir2' | |
pytest-mpl> kwarg = "baseline_dir=r'/build/pytest-of-nixbld/pytest-0/test_config2/dir3'" | |
pytest-mpl> expected_baseline_path = 'dir3', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, kwarg, expected_baseline_path, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> ("dir1", None, None, "dir1", True), | |
pytest-mpl> ("dir1", "dir2", None, "dir2", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir3", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir2", False), | |
pytest-mpl> (None, None, "dir3", "dir3", True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, kwarg, expected_baseline_path, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> (path / expected_baseline_path).mkdir() | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / expected_baseline_path / "test_mpl.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-baseline-path = {path / ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> kwarg = f"baseline_dir=r'{path / kwarg}'" if kwarg else "" | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> f""" | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare({kwarg}) | |
pytest-mpl> def test_mpl(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = f"--mpl-baseline-path={path / cli}" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_baseline_path.py:48: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config2 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ___________________________________ test_mpl ___________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpmt34524a/test_config.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpmt34524a/test_config.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpmt34524a/test_config.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_mpl - Failed: Error: Image files did not match. | |
pytest-mpl> ============================== 1 failed in 0.30s =============================== | |
pytest-mpl> ____________________ test_config[None-None-dir3-dir3-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config4')> | |
pytest-mpl> ini = '', cli = '' | |
pytest-mpl> kwarg = "baseline_dir=r'/build/pytest-of-nixbld/pytest-0/test_config4/dir3'" | |
pytest-mpl> expected_baseline_path = 'dir3', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, kwarg, expected_baseline_path, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> ("dir1", None, None, "dir1", True), | |
pytest-mpl> ("dir1", "dir2", None, "dir2", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir3", True), | |
pytest-mpl> ("dir1", "dir2", "dir3", "dir2", False), | |
pytest-mpl> (None, None, "dir3", "dir3", True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, kwarg, expected_baseline_path, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> (path / expected_baseline_path).mkdir() | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / expected_baseline_path / "test_mpl.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-baseline-path = {path / ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> kwarg = f"baseline_dir=r'{path / kwarg}'" if kwarg else "" | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> f""" | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare({kwarg}) | |
pytest-mpl> def test_mpl(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = f"--mpl-baseline-path={path / cli}" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_baseline_path.py:48: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config4 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ___________________________________ test_mpl ___________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmp09g1l_fl/test_config.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmp09g1l_fl/test_config.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmp09g1l_fl/test_config.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_mpl - Failed: Error: Image files did not match. | |
pytest-mpl> ============================== 1 failed in 0.26s =============================== | |
pytest-mpl> _________________________ test_formats[png-True-False] _________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_formats10')> | |
pytest-mpl> use_hash_library = False, passes = True, file_format = 'png' | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize('use_hash_library', (False, True)) | |
pytest-mpl> @pytest.mark.parametrize('passes', (False, True)) | |
pytest-mpl> @pytest.mark.parametrize("file_format", ['eps', 'pdf', 'png', 'svg']) | |
pytest-mpl> def test_formats(pytester, use_hash_library, passes, file_format): | |
pytest-mpl> """ | |
pytest-mpl> Note that we don't test all possible formats as some do not compress well | |
pytest-mpl> and would bloat the baseline directory. | |
pytest-mpl> """ | |
pytest-mpl> skip_if_format_unsupported(file_format, using_hashes=use_hash_library) | |
pytest-mpl> if use_hash_library and not hash_library.exists(): | |
pytest-mpl> pytest.skip("No hash library for this mpl version") | |
pytest-mpl> | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> f""" | |
pytest-mpl> import os | |
pytest-mpl> import pytest | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> @pytest.mark.mpl_image_compare(baseline_dir=r"{baseline_dir_abs}", | |
pytest-mpl> {f'hash_library=r"{hash_library}",' if use_hash_library else ''} | |
pytest-mpl> tolerance={DEFAULT_TOLERANCE}, | |
pytest-mpl> deterministic=True, | |
pytest-mpl> savefig_kwargs={{'format': '{file_format}'}}) | |
pytest-mpl> def test_format_{file_format}(): | |
pytest-mpl> fig = plt.figure() | |
pytest-mpl> ax = fig.add_subplot(1, 1, 1) | |
pytest-mpl> ax.plot([{1 if passes else 3}, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> result = pytester.runpytest('--mpl', '-rs') | |
pytest-mpl> if passes: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_pytest_mpl.py:699: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_formats10 | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_formats.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_format_png ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 7.076026280100058 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmp82jq5tkd/test_formats.test_format_png/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmp82jq5tkd/test_formats.test_format_png/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmp82jq5tkd/test_formats.test_format_png/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> ============================== 1 failed in 0.26s =============================== | |
pytest-mpl> _________________________ test_config[None-None-False] _________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config45')> | |
pytest-mpl> ini = '', cli = '', enabled_expected = False | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, enabled_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, False), | |
pytest-mpl> (True, None, True), | |
pytest-mpl> (False, None, False), | |
pytest-mpl> (False, True, True), | |
pytest-mpl> (True, True, True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, enabled_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> ini = f"mpl-results-always = {ini}" if ini else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {Path(__file__).parent / "baseline" / "2.0.x"} | |
pytest-mpl> mpl-results-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_base_style(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-results-always" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_results_always.py:42: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config45 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_base_style ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config45/test_config.test_base_style/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config45/test_config.test_base_style/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config45/test_config.test_base_style/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_base_style - Failed: Error: Image files did not m... | |
pytest-mpl> ============================== 1 failed in 0.24s =============================== | |
pytest-mpl> _________________________ test_config[True-None-True] __________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config46')> | |
pytest-mpl> ini = 'mpl-results-always = True', cli = '', enabled_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, enabled_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, False), | |
pytest-mpl> (True, None, True), | |
pytest-mpl> (False, None, False), | |
pytest-mpl> (False, True, True), | |
pytest-mpl> (True, True, True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, enabled_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> ini = f"mpl-results-always = {ini}" if ini else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {Path(__file__).parent / "baseline" / "2.0.x"} | |
pytest-mpl> mpl-results-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_base_style(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-results-always" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_results_always.py:42: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config46 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_base_style ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config46/test_config.test_base_style/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config46/test_config.test_base_style/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config46/test_config.test_base_style/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_base_style - Failed: Error: Image files did not m... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> ________________________ test_config[False-None-False] _________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config47')> | |
pytest-mpl> ini = '', cli = '', enabled_expected = False | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, enabled_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, False), | |
pytest-mpl> (True, None, True), | |
pytest-mpl> (False, None, False), | |
pytest-mpl> (False, True, True), | |
pytest-mpl> (True, True, True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, enabled_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> ini = f"mpl-results-always = {ini}" if ini else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {Path(__file__).parent / "baseline" / "2.0.x"} | |
pytest-mpl> mpl-results-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_base_style(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-results-always" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_results_always.py:42: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config47 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_base_style ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config47/test_config.test_base_style/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config47/test_config.test_base_style/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config47/test_config.test_base_style/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_base_style - Failed: Error: Image files did not m... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> _________________________ test_config[False-True-True] _________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config48')> | |
pytest-mpl> ini = '', cli = '--mpl-results-always', enabled_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, enabled_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, False), | |
pytest-mpl> (True, None, True), | |
pytest-mpl> (False, None, False), | |
pytest-mpl> (False, True, True), | |
pytest-mpl> (True, True, True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, enabled_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> ini = f"mpl-results-always = {ini}" if ini else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {Path(__file__).parent / "baseline" / "2.0.x"} | |
pytest-mpl> mpl-results-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_base_style(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-results-always" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_results_always.py:42: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config48 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_base_style ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config48/test_config.test_base_style/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config48/test_config.test_base_style/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config48/test_config.test_base_style/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_base_style - Failed: Error: Image files did not m... | |
pytest-mpl> ============================== 1 failed in 0.56s =============================== | |
pytest-mpl> _________________________ test_config[True-True-True] __________________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config49')> | |
pytest-mpl> ini = 'mpl-results-always = True', cli = '--mpl-results-always' | |
pytest-mpl> enabled_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, enabled_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, False), | |
pytest-mpl> (True, None, True), | |
pytest-mpl> (False, None, False), | |
pytest-mpl> (False, True, True), | |
pytest-mpl> (True, True, True), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, enabled_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> ini = f"mpl-results-always = {ini}" if ini else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {Path(__file__).parent / "baseline" / "2.0.x"} | |
pytest-mpl> mpl-results-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_base_style(): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-results-always" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_results_always.py:42: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config49 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> _______________________________ test_base_style ________________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config49/test_config.test_base_style/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config49/test_config.test_base_style/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/pytest-of-nixbld/pytest-0/test_config49/test_config.test_base_style/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::test_base_style - Failed: Error: Image files did not m... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> _____________________ test_config[None-None-test_mpl-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config53')> | |
pytest-mpl> ini = '', cli = '', expected_baseline_name = 'test_mpl', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, expected_baseline_name, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (False, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (True, None, FULL_TEST_NAME, True), | |
pytest-mpl> (False, True, FULL_TEST_NAME, True), | |
pytest-mpl> (None, True, FULL_TEST_NAME, True), | |
pytest-mpl> (True, True, "bad_name", False), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, expected_baseline_name, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / f"{expected_baseline_name}.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-use-full-test-name = {ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> class TestClass: | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_mpl(self): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-use-full-test-name" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_use_full_test_name.py:52: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config53 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ______________________________ TestClass.test_mpl ______________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpvjboq6hp/test_config.TestClass.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpvjboq6hp/test_config.TestClass.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpvjboq6hp/test_config.TestClass.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::TestClass::test_mpl - Failed: Error: Image files did n... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> ____________________ test_config[False-None-test_mpl-True] _____________________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config54')> | |
pytest-mpl> ini = 'mpl-use-full-test-name = False', cli = '' | |
pytest-mpl> expected_baseline_name = 'test_mpl', success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, expected_baseline_name, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (False, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (True, None, FULL_TEST_NAME, True), | |
pytest-mpl> (False, True, FULL_TEST_NAME, True), | |
pytest-mpl> (None, True, FULL_TEST_NAME, True), | |
pytest-mpl> (True, True, "bad_name", False), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, expected_baseline_name, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / f"{expected_baseline_name}.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-use-full-test-name = {ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> class TestClass: | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_mpl(self): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-use-full-test-name" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_use_full_test_name.py:52: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config54 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ______________________________ TestClass.test_mpl ______________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpskr7ynxm/test_config.TestClass.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpskr7ynxm/test_config.TestClass.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpskr7ynxm/test_config.TestClass.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::TestClass::test_mpl - Failed: Error: Image files did n... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> __________ test_config[True-None-test_config.TestClass.test_mpl-True] __________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config55')> | |
pytest-mpl> ini = 'mpl-use-full-test-name = True', cli = '' | |
pytest-mpl> expected_baseline_name = 'test_config.TestClass.test_mpl' | |
pytest-mpl> success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, expected_baseline_name, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (False, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (True, None, FULL_TEST_NAME, True), | |
pytest-mpl> (False, True, FULL_TEST_NAME, True), | |
pytest-mpl> (None, True, FULL_TEST_NAME, True), | |
pytest-mpl> (True, True, "bad_name", False), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, expected_baseline_name, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / f"{expected_baseline_name}.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-use-full-test-name = {ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> class TestClass: | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_mpl(self): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-use-full-test-name" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_use_full_test_name.py:52: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config55 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ______________________________ TestClass.test_mpl ______________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpg5wisx_p/test_config.TestClass.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpg5wisx_p/test_config.TestClass.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpg5wisx_p/test_config.TestClass.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::TestClass::test_mpl - Failed: Error: Image files did n... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> _________ test_config[False-True-test_config.TestClass.test_mpl-True] __________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config56')> | |
pytest-mpl> ini = 'mpl-use-full-test-name = False', cli = '--mpl-use-full-test-name' | |
pytest-mpl> expected_baseline_name = 'test_config.TestClass.test_mpl' | |
pytest-mpl> success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, expected_baseline_name, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (False, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (True, None, FULL_TEST_NAME, True), | |
pytest-mpl> (False, True, FULL_TEST_NAME, True), | |
pytest-mpl> (None, True, FULL_TEST_NAME, True), | |
pytest-mpl> (True, True, "bad_name", False), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, expected_baseline_name, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / f"{expected_baseline_name}.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-use-full-test-name = {ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> class TestClass: | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_mpl(self): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-use-full-test-name" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_use_full_test_name.py:52: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config56 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ______________________________ TestClass.test_mpl ______________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmp0uwkzwmp/test_config.TestClass.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmp0uwkzwmp/test_config.TestClass.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmp0uwkzwmp/test_config.TestClass.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::TestClass::test_mpl - Failed: Error: Image files did n... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> __________ test_config[None-True-test_config.TestClass.test_mpl-True] __________ | |
pytest-mpl> | |
pytest-mpl> pytester = <Pytester PosixPath('/build/pytest-of-nixbld/pytest-0/test_config57')> | |
pytest-mpl> ini = '', cli = '--mpl-use-full-test-name' | |
pytest-mpl> expected_baseline_name = 'test_config.TestClass.test_mpl' | |
pytest-mpl> success_expected = True | |
pytest-mpl> | |
pytest-mpl> @pytest.mark.parametrize( | |
pytest-mpl> "ini, cli, expected_baseline_name, success_expected", | |
pytest-mpl> [ | |
pytest-mpl> (None, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (False, None, SHORT_TEST_NAME, True), | |
pytest-mpl> (True, None, FULL_TEST_NAME, True), | |
pytest-mpl> (False, True, FULL_TEST_NAME, True), | |
pytest-mpl> (None, True, FULL_TEST_NAME, True), | |
pytest-mpl> (True, True, "bad_name", False), | |
pytest-mpl> ], | |
pytest-mpl> ) | |
pytest-mpl> def test_config(pytester, ini, cli, expected_baseline_name, success_expected): | |
pytest-mpl> path = pytester_path(pytester) | |
pytest-mpl> shutil.copyfile( # Test will only pass if baseline is at expected path | |
pytest-mpl> Path(__file__).parent / "baseline" / "2.0.x" / "test_base_style.png", | |
pytest-mpl> path / f"{expected_baseline_name}.png", | |
pytest-mpl> ) | |
pytest-mpl> ini = f"mpl-use-full-test-name = {ini}" if ini is not None else "" | |
pytest-mpl> pytester.makeini( | |
pytest-mpl> f""" | |
pytest-mpl> [pytest] | |
pytest-mpl> mpl-default-style = fivethirtyeight | |
pytest-mpl> mpl-baseline-path = {path} | |
pytest-mpl> {ini} | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> pytester.makepyfile( | |
pytest-mpl> """ | |
pytest-mpl> import matplotlib.pyplot as plt | |
pytest-mpl> import pytest | |
pytest-mpl> class TestClass: | |
pytest-mpl> @pytest.mark.mpl_image_compare | |
pytest-mpl> def test_mpl(self): | |
pytest-mpl> fig, ax = plt.subplots() | |
pytest-mpl> ax.plot([1, 2, 3]) | |
pytest-mpl> return fig | |
pytest-mpl> """ | |
pytest-mpl> ) | |
pytest-mpl> cli = "--mpl-use-full-test-name" if cli else "" | |
pytest-mpl> result = pytester.runpytest("--mpl", cli) | |
pytest-mpl> if success_expected: | |
pytest-mpl> > result.assert_outcomes(passed=1) | |
pytest-mpl> E AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 0, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} | |
pytest-mpl> E | |
pytest-mpl> E Common items: | |
pytest-mpl> E {'errors': 0, 'skipped': 0, 'xfailed': 0, 'xpassed': 0} | |
pytest-mpl> E Differing items: | |
pytest-mpl> E {'failed': 1} != {'failed': 0} | |
pytest-mpl> E {'passed': 0} != {'passed': 1} | |
pytest-mpl> E | |
pytest-mpl> E Full diff: | |
pytest-mpl> E { | |
pytest-mpl> E 'errors': 0, | |
pytest-mpl> E - 'failed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'failed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E - 'passed': 1, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E + 'passed': 0, | |
pytest-mpl> E ? ^ | |
pytest-mpl> E 'skipped': 0, | |
pytest-mpl> E 'xfailed': 0, | |
pytest-mpl> E 'xpassed': 0, | |
pytest-mpl> E } | |
pytest-mpl> | |
pytest-mpl> /build/pytest-mpl-0.17.0/tests/test_use_full_test_name.py:52: AssertionError | |
pytest-mpl> ----------------------------- Captured stdout call ----------------------------- | |
pytest-mpl> ============================= test session starts ============================== | |
pytest-mpl> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0 | |
pytest-mpl> Matplotlib: 3.8.3 | |
pytest-mpl> Freetype: 2.13.2 | |
pytest-mpl> rootdir: /build/pytest-of-nixbld/pytest-0/test_config57 | |
pytest-mpl> configfile: tox.ini | |
pytest-mpl> plugins: mpl-0.17.0 | |
pytest-mpl> collected 1 item | |
pytest-mpl> | |
pytest-mpl> test_config.py F [100%] | |
pytest-mpl> | |
pytest-mpl> =================================== FAILURES =================================== | |
pytest-mpl> ______________________________ TestClass.test_mpl ______________________________ | |
pytest-mpl> Error: Image files did not match. | |
pytest-mpl> RMS Value: 6.56291417343825 | |
pytest-mpl> Expected: | |
pytest-mpl> /build/tmpa9f7cr86/test_config.TestClass.test_mpl/baseline.png | |
pytest-mpl> Actual: | |
pytest-mpl> /build/tmpa9f7cr86/test_config.TestClass.test_mpl/result.png | |
pytest-mpl> Difference: | |
pytest-mpl> /build/tmpa9f7cr86/test_config.TestClass.test_mpl/result-failed-diff.png | |
pytest-mpl> Tolerance: | |
pytest-mpl> 2 | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED test_config.py::TestClass::test_mpl - Failed: Error: Image files did n... | |
pytest-mpl> ============================== 1 failed in 0.25s =============================== | |
pytest-mpl> =========================== short test summary info ============================ | |
pytest-mpl> FAILED tests/test_baseline_path.py::test_config[dir1-None-None-dir1-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_baseline_path.py::test_config[dir1-dir2-None-dir2-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_baseline_path.py::test_config[dir1-dir2-dir3-dir3-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_baseline_path.py::test_config[None-None-dir3-dir3-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_pytest_mpl.py::test_formats[png-True-False] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_results_always.py::test_config[None-None-False] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_results_always.py::test_config[True-None-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_results_always.py::test_config[False-None-False] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_results_always.py::test_config[False-True-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_results_always.py::test_config[True-True-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_use_full_test_name.py::test_config[None-None-test_mpl-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_use_full_test_name.py::test_config[False-None-test_mpl-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_use_full_test_name.py::test_config[True-None-test_config.TestClass.test_mpl-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_use_full_test_name.py::test_config[False-True-test_config.TestClass.test_mpl-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> FAILED tests/test_use_full_test_name.py::test_config[None-True-test_config.TestClass.test_mpl-True] - AssertionError: assert {'passed': 0, 'skipped': 0, 'failed': 1, 'errors': 0... | |
pytest-mpl> =========== 15 failed, 70 passed, 33 skipped, 2 deselected in 30.22s =========== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment