示例#1
0
    def compare(received_raw: bytes, golden_name: str):
        golden_file = (_dirname / f"golden-{browser_name}" / golden_name).read_bytes()
        received_image = Image.open(io.BytesIO(received_raw))
        golden_image = Image.open(io.BytesIO(golden_file))

        if golden_image.size != received_image.size:
            pytest.fail("Image size differs to golden image")
            return
        diff_pixels = pixelmatch(
            from_PIL_to_raw_data(received_image),
            from_PIL_to_raw_data(golden_image),
            golden_image.size[0],
            golden_image.size[1],
            threshold=0.2,
        )
        assert diff_pixels == 0
示例#2
0
    def compare(received_raw: bytes, golden_name: str) -> None:
        golden_file_path = _dirname / f"golden-{browser_name}" / golden_name
        try:
            golden_file = golden_file_path.read_bytes()
            received_image = Image.open(io.BytesIO(received_raw))
            golden_image = Image.open(io.BytesIO(golden_file))

            if golden_image.size != received_image.size:
                pytest.fail("Image size differs to golden image")
                return
            diff_pixels = pixelmatch(
                from_PIL_to_raw_data(received_image),
                from_PIL_to_raw_data(golden_image),
                golden_image.size[0],
                golden_image.size[1],
                threshold=0.2,
            )
            assert diff_pixels == 0
        except Exception:
            if os.getenv("PW_WRITE_SCREENSHOT"):
                golden_file_path.parent.mkdir(parents=True, exist_ok=True)
                golden_file_path.write_bytes(received_raw)
                print(f"Wrote {golden_file_path}")
            raise