summaryrefslogtreecommitdiff
path: root/gerber/tests/test_cairo_backend.py
diff options
context:
space:
mode:
Diffstat (limited to 'gerber/tests/test_cairo_backend.py')
-rw-r--r--gerber/tests/test_cairo_backend.py140
1 files changed, 96 insertions, 44 deletions
diff --git a/gerber/tests/test_cairo_backend.py b/gerber/tests/test_cairo_backend.py
index d5ce4ed..51007a9 100644
--- a/gerber/tests/test_cairo_backend.py
+++ b/gerber/tests/test_cairo_backend.py
@@ -8,63 +8,87 @@ import tempfile
from ..render.cairo_backend import GerberCairoContext
from ..rs274x import read
-from .tests import *
-from nose.tools import assert_tuple_equal
+
def _DISABLED_test_render_two_boxes():
"""Umaco exapmle of two boxes"""
- _test_render('resources/example_two_square_boxes.gbr', 'golden/example_two_square_boxes.png')
+ _test_render(
+ "resources/example_two_square_boxes.gbr", "golden/example_two_square_boxes.png"
+ )
def _DISABLED_test_render_single_quadrant():
"""Umaco exapmle of a single quadrant arc"""
- _test_render('resources/example_single_quadrant.gbr', 'golden/example_single_quadrant.png')
+ _test_render(
+ "resources/example_single_quadrant.gbr", "golden/example_single_quadrant.png"
+ )
-def _DISABLED_test_render_simple_contour():
+def _DISABLED_test_render_simple_contour():
"""Umaco exapmle of a simple arrow-shaped contour"""
- gerber = _test_render('resources/example_simple_contour.gbr', 'golden/example_simple_contour.png')
+ gerber = _test_render(
+ "resources/example_simple_contour.gbr", "golden/example_simple_contour.png"
+ )
# Check the resulting dimensions
- assert_tuple_equal(((2.0, 11.0), (1.0, 9.0)), gerber.bounding_box)
+ assert ((2.0, 11.0), (1.0, 9.0)) == gerber.bounding_box
def _DISABLED_test_render_single_contour_1():
"""Umaco example of a single contour
The resulting image for this test is used by other tests because they must generate the same output."""
- _test_render('resources/example_single_contour_1.gbr', 'golden/example_single_contour.png')
+ _test_render(
+ "resources/example_single_contour_1.gbr", "golden/example_single_contour.png"
+ )
def _DISABLED_test_render_single_contour_2():
"""Umaco exapmle of a single contour, alternate contour end order
The resulting image for this test is used by other tests because they must generate the same output."""
- _test_render('resources/example_single_contour_2.gbr', 'golden/example_single_contour.png')
+ _test_render(
+ "resources/example_single_contour_2.gbr", "golden/example_single_contour.png"
+ )
def _DISABLED_test_render_single_contour_3():
"""Umaco exapmle of a single contour with extra line"""
- _test_render('resources/example_single_contour_3.gbr', 'golden/example_single_contour_3.png')
+ _test_render(
+ "resources/example_single_contour_3.gbr", "golden/example_single_contour_3.png"
+ )
-def _DISABLED_test_render_not_overlapping_contour():
+def _DISABLED_test_render_not_overlapping_contour():
"""Umaco example of D02 staring a second contour"""
- _test_render('resources/example_not_overlapping_contour.gbr', 'golden/example_not_overlapping_contour.png')
+ _test_render(
+ "resources/example_not_overlapping_contour.gbr",
+ "golden/example_not_overlapping_contour.png",
+ )
+
-def _DISABLED_test_render_not_overlapping_touching():
+def _DISABLED_test_render_not_overlapping_touching():
"""Umaco example of D02 staring a second contour"""
- _test_render('resources/example_not_overlapping_touching.gbr', 'golden/example_not_overlapping_touching.png')
+ _test_render(
+ "resources/example_not_overlapping_touching.gbr",
+ "golden/example_not_overlapping_touching.png",
+ )
def test_render_overlapping_touching():
"""Umaco example of D02 staring a second contour"""
- _test_render('resources/example_overlapping_touching.gbr', 'golden/example_overlapping_touching.png')
+ _test_render(
+ "resources/example_overlapping_touching.gbr",
+ "golden/example_overlapping_touching.png",
+ )
def test_render_overlapping_contour():
"""Umaco example of D02 staring a second contour"""
- _test_render('resources/example_overlapping_contour.gbr', 'golden/example_overlapping_contour.png')
+ _test_render(
+ "resources/example_overlapping_contour.gbr",
+ "golden/example_overlapping_contour.png",
+ )
def _DISABLED_test_render_level_holes():
@@ -72,82 +96,107 @@ def _DISABLED_test_render_level_holes():
# TODO This is clearly rendering wrong. I'm temporarily checking this in because there are more
# rendering fixes in the related repository that may resolve these.
- _test_render('resources/example_level_holes.gbr', 'golden/example_overlapping_contour.png')
+ _test_render(
+ "resources/example_level_holes.gbr", "golden/example_overlapping_contour.png"
+ )
def _DISABLED_test_render_cutin():
"""Umaco example of using a cutin"""
# TODO This is clearly rendering wrong.
- _test_render('resources/example_cutin.gbr', 'golden/example_cutin.png', '/Users/ham/Desktop/cutin.png')
+ _test_render(
+ "resources/example_cutin.gbr",
+ "golden/example_cutin.png",
+ "/Users/ham/Desktop/cutin.png",
+ )
-def _DISABLED_test_render_fully_coincident():
+def _DISABLED_test_render_fully_coincident():
"""Umaco example of coincident lines rendering two contours"""
- _test_render('resources/example_fully_coincident.gbr', 'golden/example_fully_coincident.png')
+ _test_render(
+ "resources/example_fully_coincident.gbr", "golden/example_fully_coincident.png"
+ )
-def _DISABLED_test_render_coincident_hole():
+def _DISABLED_test_render_coincident_hole():
"""Umaco example of coincident lines rendering a hole in the contour"""
- _test_render('resources/example_coincident_hole.gbr', 'golden/example_coincident_hole.png')
+ _test_render(
+ "resources/example_coincident_hole.gbr", "golden/example_coincident_hole.png"
+ )
def test_render_cutin_multiple():
"""Umaco example of a region with multiple cutins"""
- _test_render('resources/example_cutin_multiple.gbr', 'golden/example_cutin_multiple.png')
+ _test_render(
+ "resources/example_cutin_multiple.gbr", "golden/example_cutin_multiple.png"
+ )
def _DISABLED_test_flash_circle():
"""Umaco example a simple circular flash with and without a hole"""
- _test_render('resources/example_flash_circle.gbr', 'golden/example_flash_circle.png',
- '/Users/ham/Desktop/flashcircle.png')
+ _test_render(
+ "resources/example_flash_circle.gbr",
+ "golden/example_flash_circle.png",
+ "/Users/ham/Desktop/flashcircle.png",
+ )
def _DISABLED_test_flash_rectangle():
"""Umaco example a simple rectangular flash with and without a hole"""
- _test_render('resources/example_flash_rectangle.gbr', 'golden/example_flash_rectangle.png')
+ _test_render(
+ "resources/example_flash_rectangle.gbr", "golden/example_flash_rectangle.png"
+ )
def _DISABLED_test_flash_obround():
"""Umaco example a simple obround flash with and without a hole"""
- _test_render('resources/example_flash_obround.gbr', 'golden/example_flash_obround.png')
+ _test_render(
+ "resources/example_flash_obround.gbr", "golden/example_flash_obround.png"
+ )
def _DISABLED_test_flash_polygon():
"""Umaco example a simple polygon flash with and without a hole"""
- _test_render('resources/example_flash_polygon.gbr', 'golden/example_flash_polygon.png')
+ _test_render(
+ "resources/example_flash_polygon.gbr", "golden/example_flash_polygon.png"
+ )
def _DISABLED_test_holes_dont_clear():
"""Umaco example that an aperture with a hole does not clear the area"""
- _test_render('resources/example_holes_dont_clear.gbr', 'golden/example_holes_dont_clear.png')
+ _test_render(
+ "resources/example_holes_dont_clear.gbr", "golden/example_holes_dont_clear.png"
+ )
def _DISABLED_test_render_am_exposure_modifier():
"""Umaco example that an aperture macro with a hole does not clear the area"""
- _test_render('resources/example_am_exposure_modifier.gbr', 'golden/example_am_exposure_modifier.png')
+ _test_render(
+ "resources/example_am_exposure_modifier.gbr",
+ "golden/example_am_exposure_modifier.png",
+ )
def test_render_svg_simple_contour():
"""Example of rendering to an SVG file"""
- _test_simple_render_svg('resources/example_simple_contour.gbr')
+ _test_simple_render_svg("resources/example_simple_contour.gbr")
def _resolve_path(path):
- return os.path.join(os.path.dirname(__file__),
- path)
+ return os.path.join(os.path.dirname(__file__), path)
-def _test_render(gerber_path, png_expected_path, create_output_path = None):
+def _test_render(gerber_path, png_expected_path, create_output_path=None):
"""Render the gerber file and compare to the expected PNG output.
Parameters
@@ -176,21 +225,24 @@ def _test_render(gerber_path, png_expected_path, create_output_path = None):
# If we want to write the file bytes, do it now. This happens
if create_output_path:
- with open(create_output_path, 'wb') as out_file:
+ with open(create_output_path, "wb") as out_file:
out_file.write(actual_bytes)
# Creating the output is dangerous - it could overwrite the expected result.
# So if we are creating the output, we make the test fail on purpose so you
# won't forget to disable this
- assert_false(True, 'Test created the output %s. This needs to be disabled to make sure the test behaves correctly' % (create_output_path,))
+ assert not True, (
+ "Test created the output %s. This needs to be disabled to make sure the test behaves correctly"
+ % (create_output_path,)
+ )
# Read the expected PNG file
- with open(png_expected_path, 'rb') as expected_file:
+ with open(png_expected_path, "rb") as expected_file:
expected_bytes = expected_file.read()
# Don't directly use assert_equal otherwise any failure pollutes the test results
- equal = (expected_bytes == actual_bytes)
- assert_true(equal)
+ equal = expected_bytes == actual_bytes
+ assert equal
return gerber
@@ -214,14 +266,14 @@ def _test_simple_render_svg(gerber_path):
gerber.render(ctx)
temp_dir = tempfile.mkdtemp()
- svg_temp_path = os.path.join(temp_dir, 'output.svg')
+ svg_temp_path = os.path.join(temp_dir, "output.svg")
- assert_false(os.path.exists(svg_temp_path))
+ assert not os.path.exists(svg_temp_path)
ctx.dump(svg_temp_path)
- assert_true(os.path.exists(svg_temp_path))
+ assert os.path.exists(svg_temp_path)
- with open(svg_temp_path, 'r') as expected_file:
+ with open(svg_temp_path, "r") as expected_file:
expected_bytes = expected_file.read()
- assert_equal(expected_bytes[:38], '<?xml version="1.0" encoding="UTF-8"?>')
+ assert expected_bytes[:38] == '<?xml version="1.0" encoding="UTF-8"?>'
shutil.rmtree(temp_dir)