|
25 | 25 | import os
|
26 | 26 | import tempfile
|
27 | 27 |
|
28 |
| -from . import FILES, cairosvg, reference_cairosvg |
29 |
| - |
30 |
| - |
31 |
| -def generate_function(description): |
32 |
| - """Return a testing function with the given ``description``.""" |
33 |
| - def check_image(svg_filename): |
34 |
| - """Check that the pixels match between ``svg`` and ``png``.""" |
35 |
| - test_png = tempfile.NamedTemporaryFile( |
36 |
| - prefix='test-', suffix='.png', delete=False) |
37 |
| - test_surface = cairosvg.surface.PNGSurface( |
38 |
| - cairosvg.parser.Tree(url=svg_filename, unsafe=True), test_png, |
39 |
| - dpi=72) |
40 |
| - test_pixels = test_surface.cairo.get_data()[:] |
41 |
| - |
42 |
| - ref_png = tempfile.NamedTemporaryFile( |
43 |
| - prefix='reference-', suffix='.png', delete=False) |
44 |
| - ref_surface = reference_cairosvg.surface.PNGSurface( |
45 |
| - reference_cairosvg.parser.Tree(url=svg_filename, unsafe=True), |
46 |
| - ref_png, dpi=72) |
47 |
| - ref_pixels = ref_surface.cairo.get_data()[:] |
| 28 | +import pytest |
48 | 29 |
|
49 |
| - if test_pixels == ref_pixels: |
50 |
| - # Test is passing |
51 |
| - os.remove(ref_png.name) |
52 |
| - os.remove(test_png.name) |
53 |
| - else: # pragma: no cover |
54 |
| - ref_surface.finish() |
55 |
| - test_surface.finish() |
56 |
| - |
57 |
| - raise AssertionError( |
58 |
| - 'Images are different: {} {}'.format( |
59 |
| - ref_png.name, test_png.name)) |
60 |
| - |
61 |
| - check_image.description = description |
62 |
| - return check_image |
| 30 | +from . import FILES, cairosvg, reference_cairosvg |
63 | 31 |
|
64 | 32 |
|
65 |
| -def test_images(): |
66 |
| - """Yield the functions testing an image.""" |
67 |
| - for svg_filename in FILES: |
68 |
| - yield ( |
69 |
| - generate_function( |
70 |
| - 'Test the {} image'.format(os.path.basename(svg_filename))), |
71 |
| - svg_filename) |
| 33 | +@pytest.mark.parametrize('svg_filename', FILES) |
| 34 | +def test_image(svg_filename): |
| 35 | + """Check that the pixels match between ``svg`` and ``png``.""" |
| 36 | + test_png = tempfile.NamedTemporaryFile( |
| 37 | + prefix='test-', suffix='.png', delete=False) |
| 38 | + test_surface = cairosvg.surface.PNGSurface( |
| 39 | + cairosvg.parser.Tree(url=svg_filename, unsafe=True), test_png, |
| 40 | + dpi=72) |
| 41 | + test_pixels = test_surface.cairo.get_data()[:] |
| 42 | + |
| 43 | + ref_png = tempfile.NamedTemporaryFile( |
| 44 | + prefix='reference-', suffix='.png', delete=False) |
| 45 | + ref_surface = reference_cairosvg.surface.PNGSurface( |
| 46 | + reference_cairosvg.parser.Tree(url=svg_filename, unsafe=True), |
| 47 | + ref_png, dpi=72) |
| 48 | + ref_pixels = ref_surface.cairo.get_data()[:] |
| 49 | + |
| 50 | + if test_pixels == ref_pixels: |
| 51 | + # Test is passing |
| 52 | + os.remove(ref_png.name) |
| 53 | + os.remove(test_png.name) |
| 54 | + else: # pragma: no cover |
| 55 | + ref_surface.finish() |
| 56 | + test_surface.finish() |
| 57 | + |
| 58 | + raise AssertionError( |
| 59 | + 'Images are different: {} {}'.format( |
| 60 | + ref_png.name, test_png.name)) |
0 commit comments